走迷宫:
数据分析:
1.定义二维字符数组作为迷宫地图
2.定义变量记录角色的位置 x y
3.时间:time(NULL) 获取1970-1-1到运行时过了总秒数
逻辑分析:
进入死循环:
1.显示地图
2.获取方向键并处理
判断前方是不是路' '
如果是:
1.把旧位置变成' '
2.把新位置变成'@'
3.更新角色位置坐标x y
3.判断是否到达出口
如果是:程序结束
#include
#include
#include
#include
int main(int argc,const char* argv[])
{
char maze[10][10] = {
{'*','*','*','*','*','*','*','*','*','*'},
{'*','@','*',' ',' ',' ','*','*','*','*'},
{'*',' ','*',' ','*',' ','*',' ',' ','*'},
{'*',' ','*',' ','*',' ','*',' ','*','*'},
{'*',' ','*',' ','*',' ',' ',' ','*','*'},
{'*',' ','*',' ','*','*','*','*','*','*'},
{'*',' ',' ',' ','*',' ',' ',' ',' ','*'},
{'*','*',' ','*','*',' ','*','*',' ','*'},
{'*','*',' ',' ',' ',' ','*','*',' ','*'},
{'*','*','*','*','*','*','*','*',' ','*'},
};
char row = 1,col = 1; //记录角色位置
time_t start_time=time(NULL);
int i,j;
for(;;)
{
system("clear"); //清理屏幕
for(i=0;i<10;i++) //显示地图
{
for(j=0;j<10;j++)
{
printf("%c ",maze[i][j]);
}
printf("n");
}
// 判断是否到达出口
if(9 == row && 8 == col)
{
printf("游戏胜利!过了%lu秒n",time(NULL)-start_time);
break;
}
switch(getch()) // 获取方向键
{
case 183: //上
if(' ' == maze[row-1][col])
{
maze[row][col]=' ';
maze[--row][col]='@';
}
break;
case 184: //下
if(' ' == maze[row+1][col])
{
maze[row][col]=' ';
maze[++row][col]='@';
}
break;
case 185: //右
if(' ' == maze[row][col+1])
{
maze[row][col]=' ';
maze[row][++col]='@';
}
break;
case 186: //左
if(' ' == maze[row][col-1])
{
maze[row][col]=' ';
maze[row][--col]='@';
}
break;
}
}
return 0;
}



