#include <stdio.h>
#include <time.h>
#include <getch.h>
#include <stdlib.h>
int main()
{
//定义迷宫地图
//1对应的是#,代表墙;2对应的是@,代表老鼠;0对应的是空格,代表路;
char maze[10][10] = {
{1,1,1,1,1,1,0,1,1,1},
{1,0,1,0,0,1,0,1,2,1},
{1,0,1,1,0,1,0,1,0,1},
{1,0,1,1,0,1,0,1,0,1},
{1,0,0,0,0,1,0,1,0,1},
{1,0,1,1,0,1,0,1,0,1},
{1,0,1,0,0,0,0,1,0,1},
{1,0,1,1,0,1,1,1,0,1},
{1,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1}
};
//定义老鼠坐标
int x = 1,y = 8;
//获取开始时间
time_t start_time = time(NULL);
for(;;)
{
//清理屏幕
system("clear");
for(int i = 0 ;i<10;i++)
{
for(int j =0;j<10;j++)
{
switch(maze[i][j])
{
case 0:printf(" ");break;
case 1:printf("# ");break;
case 2:printf("@ ");break;
}
}
printf("\n");
}
//判断是否到达出口
if(0 == x && 6 == y)
{
printf("你已经成功逃脱!");
printf("游戏时间为:%lu秒",time(NULL) - start_time);
return 0;
}
//获取方向键并处理
switch(getch())
{
case 183:
if(maze[x-1][y] == 0)
{
maze[x][y] = 0;
maze[x-1][y] = 2;
x -= 1;
}
break;
case 184:
if(maze[x+1][y] == 0)
{
maze[x+1][y] = 2;
maze[x][y] = 0;
x += 1;
}
break;
case 185:
if(maze[x][y+1] == 0)
{
maze[x][y+1] = 2;
maze[x][y] = 0;
y += 1;
}
break;
case 186:
if(maze[x][y-1] == 0)
{
maze[x][y-1] = 2;
maze[x][y] = 0;
y -= 1;
}
break;
}
}
}