走迷宫:
1、定义一个二维数组作为迷宫
2、定义老鼠的坐标
3、获取游戏开始时的时间time(NULL)
4、进入循环
1、system 清理屏幕
2、显示迷宫(遍历二维数组)
3、检查是否走出迷宫
获取游戏结束时的时间:计算出共花费多少时间
time(NULL)
是:结束程序
4、获取方向键并处理
判断接下来要走的位置是否有路
1、把新位置赋值为老鼠’@’
2、把旧位置赋值为路 ’ ’
3、把记录老鼠的坐标更新
注意:
获取方向键使用getch.h头文件中的getch函数
把getch.h头文件复制到共享文件夹,然后通过获取超级管理员权限来移动到 /usr/include/
sudo cp getch.h /usr/include
sudo chmod +r /usr/include/getch.h
测试调用getch(),方向键的键值分别是多少
183 上
184 下
185 右
186 左
<stdlib.h>system("命令名") //system("clear") 实现清屏<time.h>time(NULL) //获取自从1970-01-01 00:00:00 到现在过了多少秒
程序
#include <stdio.h>#include <getch.h>#include <stdlib.h>#include <time.h>int main(int argc,const char* argv[]){char map[10][10] = {{'#','#','#','#','#','#','#','#','#','#'},{'#',' ','#','#',' ','#','#','#','#','#'},{'#',' ','#','#',' ','#','#','#','#','#'},{'#',' ','#','#',' ',' ',' ',' ','#','#'},{'#','@','#','#',' ','#','#',' ','#','#'},{'#',' ','#','#',' ','#','#',' ',' ',' '},{'#',' ','#','#',' ','#','#','#','#','#'},{'#',' ','#','#',' ','#','#','#','#','#'},{'#',' ',' ',' ',' ','#','#','#','#','#'},{'#','#','#','#','#','#','#','#','#','#'}};//定义角色的坐标char mouse_x = 4,mouse_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 ",map[i][j]);}printf("\n");}//判断是否成功if(5 == mouse_x && 9 == mouse_y){//获取结束时的秒数time_t end_time = time(NULL);printf("游戏成功,共用时%u秒\n",end_time-start_time);return 0;}//通过方向键移动角色一次switch(getch()){case 183:if(' ' == map[mouse_x-1][mouse_y]){map[mouse_x-1][mouse_y] = '@';map[mouse_x--][mouse_y] = ' ';}break;case 184:if(' ' == map[mouse_x+1][mouse_y]){map[mouse_x+1][mouse_y] = '@';map[mouse_x++][mouse_y] = ' ';}break;case 185:if(' ' == map[mouse_x][mouse_y+1]){map[mouse_x][mouse_y+1] = '@';map[mouse_x][mouse_y++] = ' ';}break;case 186:if(' ' == map[mouse_x][mouse_y-1]){map[mouse_x][mouse_y-1] = '@';map[mouse_x][mouse_y--] = ' ';}break;}}}
如果觉得《C语言实现小游戏:走迷宫》对你有帮助,请点赞、收藏,并留下你的观点哦!