傻大方


首页 > 学习 >

箱子|推箱子游戏(C语言)( 三 )



按关键词阅读: 语言 游戏 箱子


2.2 功能模块设计本程序包括5个模块 , 分别是初始化模块、画图模块、移动箱子模块、移动小人模块和功能 。

16、控制模块 , 如图2.1 所示 。
各个模块的功能描述如下:(1) 初始化模块 。
该模块包括屏幕初始化和游戏第一关的初始化 。
屏幕初始化用于输出欢迎信息和操作提示 , 游戏每一关的初始化是构建每一关的关卡 。
(2) 画图模块 。
该模块主要是被其它模块调用 , 用于画墙、在空地画箱子、在目的地画箱子、画小人和画目的地 。
(3) 移动箱子模块 。
该模块用于移动箱子 , 包括目的地之间、空地之间和目的地与空地之间的箱子移动 。
(4) 移动小人模块 。
该模块用于控制小人移动 , 从而推动箱子到目的地 。
(5) 功能控制模块 。
该模块是几个功能函数的集合 , 包括屏幕输出功能、指定位置状态判断功能和关卡重置功能 。
如图2.1所示:图2.1 游戏方块预览 。

17、图2.3 总体设计流程图游戏从第一关开始 , 按上下左右方向键控制小人移动来推动箱子 , 可以在游戏中的任何时候按Esc键退出 。
如果游戏无成功希望 , 可以按空格键回到当前任务的开始状态;如果成功完成当前关 , 则进入下一关 , 如果当前关是最后一关 , 则显示通关信息 , 提示游戏结束 。
小人移动的方向有4个 , move()函数(处理小人移动的函数)对这4个方向移动的处理都一致 , 只是调用函数时的参数有所不同 。
首先判断小人移动的方向 , 然后根据小人所处世的当前状态、下一步状态或者下下一步状态进行适当的处理 。
总体设计流程如图2.2:程序开始菜单界面面友好界面请选关数清屏界面返回菜单退出界面程序结束欢迎玩【推箱子游】 】1或2关每 。

18、次按键都会执行清屏功能按q键控制按3键进行游戏1 , 2关游戏胜利图2.2 总体设计流程3.推箱子游戏软件详细设计3.1两个主要问题设计中的两个主要需解决的问题是:怎样生成地图、怎样实现人或人和箱子的移动 。
3.1.1 地图的生成设计中用二维整型数组中的数字元素表示不同的物体 , 比如0代表空地 , 1代表墙 , 2代表非游戏的填充内容(非必须内容) , 可以使地图规则 , 3代表目的地 , 4代表箱子 , 6代表人 。
然后用一个switch语句给每个数字赋予不同的符号 , 在输出二维数组 , 生成地图 。
3.1.2 人或人和箱子的移动设计中要想使人移动 , 首先要找到人的起始位置 , 然后才能开始移动 。
人向四个方向移动的原理是相同的 , 我们可以先 。

19、研究一个方向的移动 , 找到人的位置后 , 以人向上走为例 , 因为向上走嘛(可以通过 数组下标表示) 。
(1) 要判断人前面(上一行) , 是否为空地 , 是空地则可以移动 , 移动后判断并改变人员原位置的数值元素和空地原位置的数值元素;否则不移动 。
(2) 如果人前面是目的地 , 人也是可以移动的 , 同样判断人原位置数值元素 , 并改变人员位置的数值元素和前一位置的数值元素 。
(3) 如果人前是在空地上的箱子 。
如果箱子前面又是空地 , 则可以移动 , 改变箱子前位置的数值元素 , 还是判断原位置的数值元素 , 然后改之;如果箱子前为目的地 , 和上面说的一样移动和改数值元素 , 只是多了计分这一步 。
(4) 如果人前是已经进入目的地的箱子 。
如果箱子前又是 。

20、空地 , 则可以移动箱子 , 但是要减分 , 改变空地位置的数值元素 , 判断人和箱子原地的数值元素 , 并改之;如果箱子前是另一目的地 , 方法同上 , 只是不减分 。
用分数控制箱子是否已全在目的地 。
(5) 每一次的移动 , 必须要清屏 , 然后再显示一次地图 , 这样便可以实现人或人和箱子的移动3.2 在源程序中声明与定义void draw_map(int map1012) /地图函数 , void move(int map1012) /移动函数使用了:#include /标准输入输出头文件#include /system函数的头文件#include /getch函数的头文件多种头文件 。
程序中还应用了:printf(“a”);
/发出 。

21、警报声Static(int count);
/统计步数程序分为多个小模块 , 通过调用实现各种功能 , 增强了程序的可建设性 。
3.3 数据结构设计3.3.1 设置全局变量定义二维数组charstatus2020,用于记录屏幕一各点的状态 。
其中 , “0”表示什么都没有 , “b”表示箱子 , “w”表示目的地 , “i”表示箱子在目的地 。
首先将屏幕20*20范围内的状态初始化为0 , 然后根据具体情况 , 在画箱子时 , 将箱子所在点的状态改为“b”;在画墙壁时 , 将墙壁所在点的状态改为“w”;在画目的地时 , 将目的地所在点的状态改为“m”;当箱子被推到目的地时 , 箱子所在点的状态改为“i” , 如果每一关中所有目的地的状态都为“i” , 则 。


稿源:(未知)

【傻大方】网址:/a/2021/0801/0023373846.html

标题:箱子|推箱子游戏(C语言)( 三 )


上一篇:挤压|挤压与拉拔设备

下一篇:投影机|投影机常见问题判断和解决方法