IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 走迷宫小游戏编程 -> 正文阅读

[游戏开发]走迷宫小游戏编程

获取方向键的功能:?使用头文件?getch.ch??中的getch函数

??1、在windows中把getch.h头文件放入共享文件夹

??2、在终端进入共享文件夹

???cd?/media/sf_share/

??3、复制头文件到标准库:

??sudo?cp?getch.h??/usr/include/

??4、加读权限;

???sudo?chmod?+r?/usr/include/getch.h

???上?183?下?184?右?185?左?186

??走迷宫:

??1、定义一个二维数组来作为迷宫

???1?“#”??????????0?“?”

???2?“@”??????????

??2、定义一个变量记录老鼠坐标

??3、记录游戏开始时间

??4、进入死循环

????0、清理屏幕?system(“clear”)

????1、显示迷宫

????2、获取方向键并处理

?????判断前方是否是路

???????如果是:

???????1、旧位置=0

???????2、新位置=2

???????3、更新老鼠坐标

????3、判断是否到达出口

??????是:获取游戏结束时间

???????结束程序

程序:

#include<stdio.h>

#include<getch.h>?

#include<time.h>

#include<stdlib.h>

int?main(?int?argc,const?char*?argv[])

{

?//?定义迷宫地图

?char?maze[10][10]?={

?????{1,1,1,1,1,1,1,1,1,1},

?????{1,0,1,1,1,0,1,0,1,1},

?????{1,0,1,0,1,0,0,0,0,1},

?????{1,2,1,0,1,0,1,0,1,1},

?????{1,0,1,0,0,0,1,0,0,0},

?????{1,0,0,0,1,0,1,1,1,1},

?????{1,0,1,1,1,0,0,0,1,1},

?????{1,0,1,1,1,1,1,0,1,1},

?????{1,0,1,1,1,1,1,1,1,1},

?????{1,1,1,1,1,1,1,1,1,1},

?????};

????//定义老鼠位置?

??int?mouse_x=3,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++)

????????????{

????????????switch(maze[i][j])

????????????????{

????????????????case?0:?printf("?");break;

????????????????case?1:?printf("#");break;

????????????????case?2:?printf("@");break;

????????????????}

????????????}

????????????printf("\n");

????????}

????//判断是否到达出口

????if(4?==?mouse_x?&&?9?==?mouse_y)

????????{

????????printf("恭喜通关\n");

????????printf("用时%lu秒\n",time(NULL)-start_time);

????????break;

????????}

????//获取方向键并处理

????switch(getch())

????{

????case?183:??

?????????if(0?==?maze[mouse_x-1][mouse_y])

?????????{?maze[mouse_x][mouse_y]=0;

?????????maze[mouse_x-1][mouse_y]=2;

???????????mouse_x=mouse_x-1;

?????????}??break;

????case?184:?

?????????if(0?==?maze[mouse_x+1][mouse_y])

?????????{?maze[mouse_x][mouse_y]=0;

?????????maze[mouse_x+1][mouse_y]=2;

???????????mouse_x=mouse_x+1;

?????????}??break;

????case?185:?

?????????if(0?==?maze[mouse_x][mouse_y+1])

?????????{?maze[mouse_x][mouse_y]=0;

?????????maze[mouse_x][mouse_y+1]=2;

???????????mouse_y=mouse_y+1;

?????????}?break;

????case?186:

?????????if(0?==?maze[mouse_x][mouse_y-1])

?????????{?maze[mouse_x][mouse_y]=0;

?????????maze[mouse_x][mouse_y-1]=2;

???????????mouse_y=mouse_y-1;

?????????}??break;

????}

????}

}

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 16:34:29  更:2021-07-15 16:35:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 18:55:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码