//10行10列的数组地图
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
};
//遍历数组
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
printf("%c", map[i][j]);
}
printf("\n");
}
//初始坐标
int startX = 1;
int startY = 1;
//出口坐标
int endX = 1;
int endY = 9;
while (map[endX][endY] != '0')//如果最终位置不是0 就一直执行循坏 进行操作
{
printf("请输入:w上,s下,a左,d右:\n");
char choose = 0;; //w上 s下 a左 d右
scanf("\n%c",&choose);
switch (choose)
{
case 'w'://0向上走一格,行数-1,列数不变
if (map[startX - 1][startY] != '#')
{
//0向上走一格,0原在的行和列的坐标的位置就等于‘ ’
map[startX][startY] = ' ';
//行数-1
startX--;
//此时的行数已经是原有的-1的行数了,0向上走了,所以那个坐标的位置就变成了0
map[startX][startY] = '0';
}
break;//如果执行 跳出swich循环 打印操作后的数组地图
case 's'://0向下走一格,行数+1,列数不变
if (map[startX + 1][startY] != '#')
{
//0向下走一格,0原在的行和列的坐标就等于‘ ’
map[startX][startY] = ' ';
//行数+1
startX++;
//此时的行数已经是原有的+1的行数了,0向下走了,所以那个坐标的位置就应该变成0
map[startX][startY] = '0';
}
break;//如果执行 跳出swich循环 打印操作后的数组地图
case 'a'://0向左走一格,列数-1,行数不变
if (map[startX][startY - 1] != '#')
{
//0向下走一格,0原在的行和列的坐标就等于‘ ’
map[startX][startY] = ' ';
//列数—1
startY--;
//此时的列数已经是原有的-1的列数了,0向左走了,所以那个坐标的位置就应该变成0
map[startX][startY] = '0';
}
break;//如果执行 跳出swich循环 打印操作后的数组地图
case 'd'://0向右走一格,列数+1,行数不变
if (map[startX][startY + 1] != '#')
{
//0向右走一格,0原在的行和列的坐标就等于‘ ’
map[startX][startY] = ' ';
//列数+1
startY++;
//此时的列数已经是原有的+1的列数了,0向左走了,所以那个坐标的位置就应该变成0
map[startX][startY] = '0';
}
break;//如果执行 跳出swich循环 打印操作后的数组地图
default:
break;
}
//打印操作后的地图结果图
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
printf("%c", map[i][j]);
}
printf("\n");
}
//如果出口处等于0 程序结束
if(map[1][9] == '0')
{
printf("牛逼...你通关了!\n");
}
}