#define ROW 9
#define COLS 15
#include <stdio.h>
void printMap(char arr[][COLS])
{
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 15; j++)
{
printf("%c",arr[i][j]);
}
printf("\n");
}
}
int main(int argc, const char * argv[]) {
char t ;
int x =0,y = 1;
//地图,地图中的0表示玩家,空白表示路,可通行,'#'表示墙,不可通行
char arr[][15] =
{
"#0#############",
"# ### #",
"# # ####### #",
"### # # #",
"# ##### # ###",
"# ### # #",
"# ####### #",
"###### #",
"###### ########"
};
printf("欢迎来到游戏迷宫!\n");
//用户输入'W','A','S','D'控制方向
printf("控制小人移动,分别代表w上,s下,a左,d右");
//打印地图
printMap(arr);
while(1)
{
rewind(stdin);
scanf("%c",&t);//接收用户输入信息
//判断用户输入信息,控制小人移动
switch (t) {
case 'a':
if(y - 1 >= 0 && arr[x][y - 1] == ' ')
{
char temp = arr[x][y];
arr[x][y] = arr[x][y-1];
arr[x][y-1] = temp;
y = y - 1;
}
break;
case 'd':
if(y + 1 <= 15 && arr[x][y + 1] == ' ')
{
char temp = arr[x][y];
arr[x][y] = arr[x][y+1];
arr[x][y+1] = temp;
y = y +1;
}
break;
case 'w':
if(x - 1 >= 0 && arr[x - 1 ][ y ] == ' ')
{
char temp = arr[x][y];
arr[x][y] = arr[x - 1][y];
arr[x - 1][y] = temp;
x = x - 1;
}
break;
case 's':
if(x + 1 <= 15 && arr[x + 1][y] == ' ')
{
char temp = arr[x][y];
arr[x][y] = arr[x + 1][y];
arr[x + 1][y] = temp;
x = x + 1;
}
break;
}
printMap(arr);//调用函数打印地图
//判断小人是否到达出口,如果到达终止循环,结束游戏
if (x == 8 && y == 6) {
{ for (int i = 0; i < 8; i++) {
printf("恭喜您通过游戏!\n");
}
break;
}
}
printf("\n");
}
return 0;
} |
|