数字迷宫游戏项目要求

萌到你眼炸
648次浏览
2021年01月01日 02:57
最佳经验
本文由作者推荐

银耳莲子羹的功效-飞鸟集泰戈尔

2021年1月1日发(作者:娄坚)


数字迷宫
第一部分 案例描述
案例目得
本案例为实现动态得刷 新Dos界面,使用用户控制头像“消灭”窗口中出现得数字(无
固定顺序)得游戏,来使学员加深对一 维数组、二维数组、循环语句、选择程序设计以及
相关系统函数得使用。
案例难度
★★★★
案例覆盖技能点
a) 选择程序设计
b) 循环程序设计
c) 用户、屏幕窗口得输入输出
d) 相关系统函数
e) 一维、二维数组
推荐案例完成时间
4天
适用课程与对象
C语言案例(T阶段)
第二部分 需求与开发环境


使用技术与开发环境
Microsoft Visual C++ 6、0
案例需求
本案例要求制作一个《数字迷宫》得游戏,该游戏得玩法描述为:


1、 系统主要地图为固定模式
2、 地图内部包含墙体、走廊、阿拉伯数字(1~7)、玩家头像(1个)四种不同内容
3、 用户通过上、下、左、右按键来控制玩家头像在地图范围内得走动
4、 在玩家走动过程中,碰撞墙壁时,该步得走动无效,玩家头像原地不变
5、 玩家允许在设计走廊内部进行走动
6、 玩家头像遇到阿拉布数字时,数字消失,并且对玩家走动无影响
7、 玩家头像遭遇所有数字之后(地图上无阿拉伯数字),该局游戏结束,并自动开始下
一局游戏
8、 在某一局游戏中,游戏走廊、墙体与其她游戏相同,但数字位置会随机产生
9、 阿拉伯数字产生在走廊内而非墙体上
10、 在玩家游戏过程中按下Esc键,游戏无条件退出。
11、 在玩家未使用Esc键时,程序正常运行
程序运行截图
1、 程序初始状态


2、 玩家运行中

3、 退出

数字迷宫工作原理


1. 本程序分为初始——玩家运行——重启一局——结束四个阶段
a) 初始化阶段
i.
ii.
iii.
程序当中存在一18*24大小得固定地图数组
该数组以01分别标识程序地图当中得“墙体”以及“走廊”
通过随机函数在走廊中产生1~ 7阿拉伯数字,并且将该系列数字写入
二维数组得相应位置当中,对1(走廊)进行覆盖
iv.
v.
产生玩家位置:数组得(1,1)处
使用循环语句遍历打印出数组元素,元素包括
1. 墙体(0):■
2. 走廊(1): 空格*2
3. 数字(1~7):数字本身+空格*1
4. 玩家头像:1 即:☺+空格*1
b) 玩家运行阶段
i.
ii.
玩家使用上下左右键进行头像控制
与墙体碰撞时,走动无效,原地不动(通过玩家头像位置标 示与数组内部
数据就是否为墙体(0)来判断)
iii. 为一般走廊时,玩家原头像位置清 空为双空格(通过玩家头像位置标示
与数组内部数据就是否为走廊(1)来判断),玩家当前位置输出玩 家头像,
并更新玩家头像位置全局变量。
iv. 为数字时(通过玩家头像位置标示与数组内 部数据就是否为数字(>0)来
判断),该数字消失,玩家原位置头像消失,新位置出现玩家头像,并将 数
组内消失数字位置置为走廊(1), 并更新玩家头像位置全局变量。
v. 每走动一次系 统遍历数组元素,判断数字(>0)多少,当数字存在数量>0
时,该局继续,=0时,进入重启一局步 骤。
c) 重启一局
i. 重复初始化阶段(注意要移动头像到(1,1)位置)
d) 结束程序


i. 用户点击Esc或强行关闭应用程序时,程序无条件退出。
第三部分功能点介绍
头文件引用列表
头文件名
#include
#include
功能简述
使用一般输入输出函数
使用getch函数达到输入数据不敲回车进行下步计算功

#include
#include 、h
使用time(int)函数
使用光标移动函数对光标进行编码定位
系统函数使用列表
函数名称
getch;
printf
srand;
time(NULL);
功能简述


设置系统rand函数随机引资
以时间作为随机因子产生不重复得随机数,提高程序
效率
rand
GetStdHandle
GetLastError;
得到随机数
得到该程序HANDLE得函数
得到系统最近错误编号函数
SetConsoleCursorPosition(Handle,
代码设置系统光标位置函数
{x,y});
公共变量列表
变量名称 初始值 功能简述


int code[17][24] 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, < br>0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 ,
0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1, 0,0,
0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0 ,0,0,0,
0,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1, 1,1,1,0,0,
0,1,0,0,1,0,1,0,0,0,0,1,0,1,1,1,0,0 ,0,0,0,0,0,0,
0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1, 0,0,0,0,0,0,0,0,
0,1,0,0,0,0,0,0,0,0,0,1,0,0,0 ,1,1,1,1,1,1,1,1,0,
0,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,0,1,0,0,1,0,0,0,0,
0,0,0,0,0,0,1,0,0,0,0,0 ,0,0,1,0,1,0,0,1,0,0,0,0,
0,0,0,0,0,0,1,0,0,0, 0,0,0,0,1,0,1,1,1,1,0,1,1,0,
0,0,0,0,0,1,1,1,1 ,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,
0,0,0,0,0,1,0, 0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,
0,0,1,1,1,1 ,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,
0,1,1,0, 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,
0,0,1 ,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,
0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
};
int postionX,
postionY
postionX=1; postionY=1;
地图数组,0表
示墙体,1表示
走廊
玩家得初始位

函数功能列表
函数名称
void main
void SetCode(int num);
功能简述
程序接口函数,负责程序整体运行
该函数通过传入得num值来判断并输出为:■,空格*2,或


者数字本身
void SetWindow;
生成地图主体函数:遍历公共数组,在位置部位(1,1) 时,调
用SetCode函数,并在(1,1)位置输出玩家头像
void SetNum;
程序初始化时,用于使用随机函数在数组“走廊”位置生
成1~7得阿拉伯数字
void Begin;
初始化主体函数,设置玩家头像初始位置,调用SetNum函

void LeftKey;
void UpKey;
void DownKey
void RightKey;
int CheckLeftNum;
void GoToXY(int x, int y);
该函数判断数组内剩余得数字(>0)数量,返回该数量
该函数用于在x,y位置输出用户头像
玩家按下,上下左右按键时,分别调用得函数,该函数 可判
断玩家就是否为被墙体阻挡、正常行走、“吃”掉数字
三种状态,并改变玩家头像得位置。
void GoToXYSpace(int x, int
该函数用于在x,y处输出空格*2,用于用户走动时,消除之
y);
前位置处头像。
第四部分 考核评价点(系统验收标准)
序号
1
2
3
4
7
功能列表 功能描述





分数
30
50
10
10

说明
必做
必做
必做
必做
必做
难度
★★
★★★★
★★


正确创建系统原始地图
正确完成用户移动监测
正确完成数字剩余检测
正确完成系统重新开始
系统退出

上海高尔夫俱乐部-贺新郎


猝死是什么原因造成的-春运工作总结


国防科技大学怎么样-有情终成眷属


咬字组词-第一节课


莎乐美-雨的自述


喝醉酒怎么解酒-厉害的反义词


广告文案案例-电脑维护常识


标书样本-我等你回来