走迷宫:
数据分析:
-
定义二维字符数组作为迷宫地图
-
定义变量来记录角色的位置 x y
逻辑分析:
进入死循环:
-
显示地图
-
判断是否到达出口
如果是:程序结束
-
获取方向键并处理
判断前方是不是路' '
如果是路:
1、把旧位置编程' '
2、把新位置变成'@'
3、更新角色位置坐标 x y
下面是代码实例展示
#include <stdio.h>
#include <getch.h>
#include <stdlib.h>
#include <time.h>
int main(int argc,const char* argv[])
{
char maze[10][10] = {
{'#','#','#','#','#','#','#','#','#','#'},
{'#',' ','#','#','#','#','#','#','#','#'},
{'#','@','#','#','#','#','#','#','#','#'},
{'#',' ','#','#','#','#','#','#','#','#'},
{'#',' ','#','#','#','#','#','#','#','#'},
{'#',' ','#',' ',' ',' ',' ','#','#','#'},
{'#',' ','#',' ','#','#',' ','#','#','#'},
{'#',' ','#',' ','#','#',' ','#','#','#'},
{'#',' ',' ',' ','#','#',' ',' ',' ',' '},
{'#','#','#','#','#','#','#','#','#','#'},
};
// 记录角色位置
char man_x = 2,man_y = 1;
// 记录游戏开始时间
time_t start_time = time(NULL);
for(;;)
{
// 清理屏幕
system("clear");
// 显示地图
for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
printf("%c ",maze[i][j]);
}
printf("\n");
}
//判断是否到达出口
if(8 == man_x && 9 == man_y)
{
printf("游戏胜利,过了%lu秒!\n",
time(NULL)-start_time);
return 0;
}
// 获取方向键处理
switch(getch())
{
case 183: //向上
if(' ' == maze[man_x-1][man_y])
{
maze[man_x][man_y] = ' ';
maze[--man_x][man_y] = '@';
}
break;
case 184: //下
if(' ' == maze[man_x+1][man_y])
{
maze[man_x][man_y] = ' ';
maze[++man_x][man_y] = '@';
}
break;
case 186: //左
if(' ' == maze[man_x][man_y-1])
{
maze[man_x][man_y] = ' ';
maze[man_x][--man_y] = '@';
}
break;
case 185: //右
if(' ' == maze[man_x][man_y+1])
{
maze[man_x][man_y] = ' ';
maze[man_x][++man_y] = '@';
}
break;
}
}
}
本文介绍了一个使用C语言编写的简单迷宫游戏程序。通过二维字符数组构建迷宫地图,并利用循环和方向键控制玩家移动,最终目标是达到迷宫出口。文中详细展示了游戏逻辑及代码实现。
232

被折叠的 条评论
为什么被折叠?



