黑马程序员技术交流社区
标题:
C语言指针实现"迷宫游戏"
[打印本页]
作者:
滔哥
时间:
2015-4-23 15:24
标题:
C语言指针实现"迷宫游戏"
//
// main.c
// 迷宫游戏
//
// Created by carry on 15/4/23.
// Copyright (c) 2015年 carry.cn. All rights reserved.
//
#include <stdio.h>
#define row 6
#define col 6
#define street ' '
//定义一个打印地图的函数
void printmap(char map[row][col]){
/**
@author Brother Tao, 15-04-23 11:04:50
@brief 打印地图,重新绘制地图
@param map 地图数组
*/
for (int i=0; i<row; i++) {
for (int j=0; j<col; j++) {
printf("%c",map[i][j]);
}
printf("\n");
}
}
/**
@author Brother Tao, 15-04-23 11:04:48
@brief 交换小人与路的位置
@param map 地图
@param oldX 小人原来的位置X
@param oldY 小人原来的位置Y
@param newX 小人新位置X
@param newY 小人新位置Y
@since <#version number#>
*/
//定义一个交换小人判断位置的函数
void pepole(char map[row][col],int oldX,int oldY,int newX,int newY,int *px,int *py){
char temp;
if (map[newX][newY]==street) {
temp=map[oldX][oldY];
map[oldX][oldY]=map[newX][newY];
map[newX][newY]=temp;
*px = newX;// *px获取地址px里的内容 使用newX赋值给*px传递的变量
*py = newY;
}
}
int main(int argc, const char * argv[]) {
// insert code here...
//定义变量(小人位置变量,路的位置' '变量),定义地图,打印地图
char map[row][col]={
{'#','#','#','#','#','#'},
{'#','1','#','#',' ','#'},
{'#',' ','#','#',' ',' '},
{'#',' ',' ','#',' ','#'},
{'#','#',' ',' ',' ','#'},
{'#','#','#','#','#','#'}
};
/*------------------------------------*/
int currentX=1;//定义小人坐标X
int currentY=1;//定义小人坐标Y
int *px = ¤tX; //定义指针,函数传递小人变化的位置
int *py = ¤tY;
char direction;//接受用户输入的数据
/*------------------------------------*/
printmap(map);//打印地图
printf("游戏玩法:w.上 s.下 a.左 d右\n");//提示用户玩法
//判断用户输入交换小人的位置
while (1) {
scanf("%c",&direction);//接受用户输入的方向
rewind(stdin);//清空缓冲区
switch (direction) {
case 'w':
case 'W':
pepole(map, currentX, currentY, currentX-1, currentY,px,py);
break;
case 's':
case 'S':
pepole(map, currentX, currentY, currentX+1, currentY,px,py);
//
break;
case 'a':
case 'A':
pepole(map, currentX, currentY, currentX, currentY-1,px,py);
//
break;
case 'd':
case 'D':
pepole(map, currentX, currentY, currentX, currentY+1,px,py);
//
break;
default:
break;
}
printmap(map);//重绘地图
if (currentY==5) {//判断用户是否走出迷宫
printf("哇哦,恭喜你走出来了\n");
break;
}
}
return 0;
}
复制代码
作者:
guyinghua901018
时间:
2015-4-23 20:57
涛哥也是蛮拼的,来顶下
作者:
天涯何处
时间:
2015-4-28 00:05
世界那么大我想去看看
作者:
我本灬无名
时间:
2015-6-13 22:11
看不懂。。。
作者:
王鹏
时间:
2015-6-13 22:15
mark from iOS0612
作者:
小路8866
时间:
2015-6-13 22:25
顶一下,一开始以为是飞行棋游戏,那个挺麻烦的
作者:
离经叛道的女子
时间:
2015-6-13 22:43
我们马上就学到啦 好厉害的样子
作者:
fixer
时间:
2015-6-13 23:32
棒棒棒棒棒哒
作者:
fixer
时间:
2015-6-13 23:34
棒棒棒棒棒哒
作者:
⒈苆都s.兲憶
时间:
2015-6-13 23:59
dingding!!!
作者:
hanxujie
时间:
2015-6-14 11:56
此代码,我搞了一晚上,就是各种的不行,哎郁闷啊!
作者:
青青河边草Rt
时间:
2015-6-16 23:51
现在还看不懂怎么破!
作者:
chensc
时间:
2015-6-17 05:45
学习学习!
作者:
李言
时间:
2015-6-17 09:01
来顶一下,嘿嘿
作者:
CQY
时间:
2015-6-17 09:22
滔哥很强大哇,更重要的是,我一直觉得滔哥的头像好帅的说
作者:
zale
时间:
2015-9-14 19:52
谢谢分享
作者:
zou897591783
时间:
2016-7-21 00:10
好厉害哦
作者:
jilaiyuan
时间:
2016-7-21 09:49
学习学习~
作者:
anan安
时间:
2016-7-27 22:11
怎么实现呢?我想玩一下
作者:
悄然林静
时间:
2016-7-27 23:27
顶,太给力了
作者:
悄然林静
时间:
2016-7-27 23:30
顶,太给力了
作者:
linguoqun
时间:
2016-7-31 22:32
好厉害。提问的人和回答的人都很厉害。
作者:
徐荘
时间:
2016-7-31 23:48
我去。。。黑马帝,感谢你的分享
作者:
名字不太重要
时间:
2017-3-21 00:39
6的飞起
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2