900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C语言实现小游戏:走迷宫

C语言实现小游戏:走迷宫

时间:2023-07-06 19:45:59

相关推荐

C语言实现小游戏:走迷宫

走迷宫:

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;}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。