char ch = '0';
char map[10][10] =
{
//10行10列的数组地图
{'#','#','#','#','#','#','#','#','#','#'},//0
{'#','0',' ',' ',' ','#',' ','#',' ',' '},//1
{'#','#',' ','#','#','#',' ','#',' ','#'},//2
{'#','#',' ',' ',' ',' ',' ','#',' ','#'},//3
{'#','#','#',' ','#','#',' ','#',' ','#'},//4
{'#',' ','#',' ',' ','#',' ','#',' ','#'},//5
{'#',' ','#',' ',' ','#',' ','#',' ','#'},//6
{'#',' ','#',' ',' ','#',' ','#',' ','#'},//7
{'#',' ',' ',' ',' ','#',' ',' ',' ','#'},//8
{'#','#','#','#','#','#','#','#','#','#'},//9
//0 1 2 3 4 5 6 7 8 9
};
int row = 1;
int coloumn = 1;
while (row != 1 || coloumn != 9) {
//打印迷宫
for (int i = 0; i < 10; i ++) {
for (int j = 0; j < 10; j++) {
printf("%c", map[i][j]);
}
printf("\n");
}
//提示
printf("请输入wsad上下左右控制方向\n");
//接受用户输入的字符
scanf("\n%c", &ch);
//判断字符
switch (ch) {
case 'w'://上
if (map[row - 1][coloumn] != '#') {//判断下一步是否能走
map[row][coloumn] = ' ';//如果能走将现有位置置空
map[row - 1][coloumn] = '0';//将下一位置置零,表示现在所在位置
row--;//原先位置的横坐标变化得到当前位置的横坐标
}
break;
case 's'://下
if (map[row + 1][coloumn] != '#') {//判断下一步是否能走
map[row][coloumn] = ' ';//如果能走将现有位置置空
map[row + 1][coloumn] = '0';//将下一位置置零,表示现在所在位置
row++;//原先位置的横坐标变化得到当前位置的横坐标
}
break;
case 'a'://左
if (map[row][coloumn - 1] != '#') {//判断下一步是否能走
map[row][coloumn] = ' ';//如果能走将现有位置置空
map[row][coloumn - 1] = '0';//将下一位置置零,表示现在所在位置
coloumn--;//原先位置的纵坐标变化得到当前位置的纵坐标
}
break;
case 'd'://右
if (map[row][coloumn + 1] != '#') {//判断下一步是否能走
map[row][coloumn] = ' ';//如果能走将现有位置置空
map[row][coloumn + 1] = '0';//将下一位置置零,表示现在所在位置
coloumn++;//原先位置的纵坐标变化得到当前位置的纵坐标
}
break;
default:
printf("请按提示输入字符控制方向\n");//输入错误提醒
break;
}
}
//走出迷宫
printf("恭喜你走出了迷宫\n");