规则
玩家通过键盘录入 w, s, a, d控制小人向不同方向移动, 其中w代表向上移动, s代表向 下移动, a代表向左移动, d 代表向右移动, 当小人移动到出口位置, 玩家胜利
######
#O #
# ## #
# # #
## #
######
通过更改二维数组就能改变迷宫的样式
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
//迷宫
//玩家通过键盘录入 w, s, a, d控制小人向不同方向移动, 其中w代表向上移动, s代表向 下移动, a代表向左移动, d 代表向右移动, 当小人移动到出口位置, 玩家胜利
//######
//#O #
//# ## #
//# # #
//## #
//######
int success = 0;//0未成功 1成功
//定义二维数组放地图
char map[6][6] =
{
{"######"},
{"# # "},
{"# ## #"},
{"# # #"},
{"## #"},
{"######"},
};
//存放当前位置 行和列
int cur_row = 1;
int cur_col = 1;
map[cur_row][cur_col] = 'O';
//操作
char oprt = ' ';
while (success != 1)
{
system("CLS");//清屏
//画地图
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 6; j++)
{
printf("%c", map[i][j]);
}
printf("\n");
}
//提示操作
printf("请输入操作:");
scanf("%c", &oprt);
switch (oprt)
{
case 'w':
if (cur_row - 1 >= 0)//还在迷宫里
{
if (map[cur_row - 1][cur_col] == ' ')//上面是空,可以走
{
map[cur_row - 1][cur_col] = 'O';//小人位置上移
map[cur_row][cur_col] = ' ';//小人原位置置空
cur_row--;//更新小人所处位置
}
}
else//出去了
{
printf("成功出去\n");
success = 1;
return 0;
}
break;
case 's':
if (cur_row + 1 < 6)//还在迷宫里
{
if (map[cur_row + 1][cur_col] == ' ')//下面是空,可以走
{
map[cur_row + 1][cur_col] = 'O';//小人位置下移
map[cur_row][cur_col] = ' ';//小人原位置置空
cur_row++;//更新小人所处位置
}
}
else//出去了
{
printf("成功出去\n");
success = 1;
return 0;
}
break;
case 'a':
if (cur_col - 1 >= 0)
{
if (map[cur_row][cur_col - 1] == ' ')
{
map[cur_row][cur_col - 1] = 'O';
map[cur_row][cur_col] = ' ';
cur_col--;
}
}
else
{
printf("成功出去\n");
success = 1;
return 0;
}
break;
case 'd':
if (cur_col + 1 < 6)
{
if (map[cur_row][cur_col + 1] == ' ')
{
map[cur_row][cur_col + 1] = 'O';
map[cur_row][cur_col] = ' ';
cur_col++;
}
}
else
{
printf("成功出去\n");
success = 1;
return 0;
}
break;
default:
break;
}
}
return 0;
}