1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > c语言迷宫代码大全 C语言---迷宫游戏 代码

c语言迷宫代码大全 C语言---迷宫游戏 代码

时间:2023-01-28 19:59:32

相关推荐

c语言迷宫代码大全 C语言---迷宫游戏 代码

//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");

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。