黑马程序员技术交流社区
标题: 迷宫游戏 [打印本页]
作者: 赵云18235802528 时间: 2015-6-28 07:46
标题: 迷宫游戏
/*
char map[ROW][COL]={
{'#','#','#','#','#','#'}, //'#'代表墙 '0'代表人 ' '代表路
{' ','O','#','#',' ',' '},
{'#',' ','#','#',' ','#'},
{'#',' ',' ','#',' ','#'},
{'#','#',' ',' ',' ','#'},
{'#','#','#','#','#','#'}
};
*/
#include <stdio.h>
#define ROW 6
#define COL 6
int main(){
char map[ROW][COL]={
{'#','#','#','#','#','#'},
{'0',' ','#','#',' ',' '},
{'#',' ','#','#',' ','#'},
{'#',' ',' ','#',' ','#'},
{'#','#',' ',' ',' ','#'},
{'#','#','#','#','#','#'}
};
//打印地图
for (int i=0; i<ROW;i++ ) {
for (int j=0; j<COL;j++) {
printf("%c",map[j]);
}
printf("\n");
}
//定义变量
char direction;
char street=' ';
int x=1,y=0;//向下代表x的正方向,向右代表y轴的正方向
//提示用户输入向上w 向下s 向左a 向右d
printf("请用户输入方向键,向上 w,向下 s 向左a 向右d 退出 q");
char ch;
//*******循环控制********
while(1){
scanf("%c",&direction);
scanf("%c",&ch);
char temp;
switch(direction){
case 'w':
case 'W':
//判断小人移动是否等于路
if (map[x-1][y]==street) {
temp=map[x][y];
map[x][y]=map[x-1][y];
map[x-1][y]=temp;
//重新记录小人的位置
x--;
break;
}
case 's':
case 'S':
//判断小人移动是否等于路
if (map[x+1][y]==street) {
temp=map[x][y];
map[x][y]=map[x+1][y];
map[x+1][y]=temp;
//重新记录小人的位置
x++;
break;
}
case 'a':
case 'A':
//判断小人移动是否等于路
if (map[x][y-1]==street) {
temp=map[x][y];
map[x][y]=map[x][y-1];
map[x][y-1]=temp;
//重新记录小人的位置y
y--;
break;
}
case 'd':
case 'D':
//判断小人移动是否等于路
if (map[x][y+1]==street) {
temp=map[x][y];
map[x][y]=map[x][y+1];
map[x][y+1]=temp;
//重新记录小人的位置
y++;
break;
}
case 'q':
return 0;
break;
}
for (int i=0; i<ROW; i++) {
for (int j=0; j<COL; j++) {
printf("%c",map[j]);
}
printf("\n");
}
if (y==5) {
printf("哇哦,你出来了!\n");
}
}
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |