推箱子游戏详细设计报告一、引言在前一阶段(概要设计)中,已解决了实现该游戏需求的程序模块设计问题包括游戏模块间的关系设计,以及数据结构和模块结构的设计等在以下的详细设计报告中将对在本阶段中对游戏所做的所有详细设计进行说明本阶段依据概要设计的要求, 确定应该如何具体地实现所要求的游戏,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序具体包括各功能模块信息的录入和修改以及删除等1.2 目的目的是在训练你的逻辑思考能力在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务可以开发青少年学生的智力,又可以防止老年痴呆症1.3 参考资料 《C程序设计(第三版)》 ,谭浩强编,清华大学出版社 《Turbo C 2.0实用大全》,常玉龙等编写,北京航空航天大学出版社 《C语言趣味程序百例精解》 ,陈朔鹰陈英主编,北京理工大学出版社 《C游戏编程从入门到精通》 ,浦滨著 , 北京希望电子出版社《C函数实用手册》,张曜 郭立山 吴天著 , 冶金工业出版社二、总体设计2.1 需求概要用户在进入游戏后,可以根据自己的想法自由移动箱子,游戏提供自由选关的功能模块,凭借这些模块,玩家可以实现对游戏快速通关!2.2 软件各模块结构1、初始化模块 :该模块包括和游戏。
屏幕初始化用于输出游戏的操作提示,游戏的每一关的初始化是屏幕初始化初始化模块每一关的初始化输出游戏的操作提示构建每一关的关卡2、图画模块: 该模块主要是被其它模块调用,用于画墙、在空地画箱子、在目的地画箱子、和画目 的地画墙画箱子画图模块画小人画目的地目的地画箱子3、移动箱子模块:空地之间箱子的移动移动箱子模块目的地之间箱子的移动目的地与空地之间的箱子移动画出每一关墙的形状画箱子的形状、大小和颜色画小人的形状、大小和颜色画出每一关的目的地,以确定难度空地之间箱子的上下左右的移动箱子推开目的地的变化画出箱子到达目的地箱子的箱子的形状和颜色目的地与空地之间的箱子的上下左右移动4、移动小人模块:小人移动移动小人推动箱子到目的地5、功能控制模块:屏幕输出功能功能控制模块指定位置状态判断功能关卡重置功能控制小人在空地、推着箱子和在目的地之间的上下左右移动控制小人推着箱子在初始地点与目的地之间的上下左右移动开始游戏输出游戏的提示和通关提示时刻判断游戏的小人物、箱子所能移动的方向位置和游戏能不能通关按空格键能倒回本关的初始状态三、程序描述1 初始化模块按空格键按空格键按空格键按空格键按空格键开始初始化程序初始化游戏的第一关第 一 关 是 否不能过关?显示第一关过关信息初始化游戏的第二关第 二 关 是 否不能过关?初始化游戏的第三关显示第二关过关信息第 三 关 是 否不能过关?显示第三关过关信息初始化游戏的第四关第 四 关 是 否不能过关?显示第四关过关信息初始化游戏的第五关第五关是否不能过关?显示第五关过关信息结束○1 :开始主要的初始化就是屏幕初始化,用于输出游戏的操作提示,使玩家能知道游戏怎么玩!○2 :每一个关卡的初始化,在游戏不能通关时,按空格键回到刚开始玩这个关卡的初始状态以实现玩家能快速通关!○3 :进行下一关的初始化,就是这一关已经通关,要进入下一关的游戏,使游戏显示下一关的初始状态!2 图画模块这个模块的功能不是很多,也比较简单,主要就是:○1 :画墙:用方块表示,画出墙的形状和大小,以确定该关卡的难度。
○2 :画箱子:用正方块表示,这个又分为在目的地的箱子和空地的箱子,这二种箱子不同之画图程序用程序画墙(用小方块表示)在空白地 (非目的地) 画不同颜色的箱子 (小方块表示)在目的地画黄色箱子(小方块表示)开始画目的地的函数(黄色为目的地,用心型)并记录每个目的地的位置画小人结束处就是颜色不同另外还要在开始时把箱子放在哪个位置以确定难度!○3 :画小人物:这个有点难度,主要是确定它的形状和大小,最主要的就是画出来的小人物要有人样!○4 :画目的地:在没有箱子的情况下用小圆点表示,有箱子就显示箱子的形状!并把目的地放的位置选好,要确定能过关!3 移动箱子模块该模块用于移动箱子,包括目的地之间、空地之间和目的地与空地之间的箱子移动 本模块的主要功能就是记忆和判断,要玩家每走一步都记住,从中判断小人物和箱子还能怎样移动,是否有通关的可能!开始把上一个状态箱子和小人所处位置(未移动状态)的箱子、小人清空初始化箱子位置判断箱子和小人移动的方向判断目前处于四种模式中的哪一种模式在当前位置重新画出箱子和小人结束4 移动小人模块该模块所要应用的功能就是判断和记忆,在每走一步就要画出新的小人物和箱子,执行之前 还要经过复杂的判断,在不同的状态下,判断的结果不同。
当判断出撞墙就不执行,要在没有任 何的阻拦的情况下才执行!主要判断有:判断小人旁边有没墙和箱子,要是是撞墙就不执行,不 是就执行要是是箱子就判断箱子会不会撞墙要是撞墙就不执行,不是就小人物跟箱子一起移动!开始读取玩家按下的键,判断方向判断小人旁边有没墙和箱子,要是是撞墙就不执行,不是就执行要是是箱子就判断箱子会不会撞墙要是撞墙就不执行,不是就小人物跟箱子一起移动!记住当前的状态,读取下一个按键结束5 功能控制模块○1 :提示和每个键所执行的功能只是为了让玩家能快速了解游戏的玩法和怎样才能通关,以达到玩家觉得不会无从下手不知游戏怎么玩!○2 :设计背景颜色和字体颜色只是为了减轻视觉疲劳,看上去不会太刺眼,也看美观游戏的画面!○3 :设计字母表示墙、箱子、箱子在目的地和目的地只是为了简便程序,不要让程序太复杂!○4 :记忆功能和判断功能是同时存在的,记忆功能要时刻记住画面上每种东西的位置以实现判断玩家还能怎样移动箱子、小人物是否靠墙,还能怎样走动,并判断玩家按了什么键,以 实现小人物和箱子的移动!制作屏幕输出游戏的提示,说明怎么玩游戏,要怎么样才能通关开始设计游戏背景的颜色很屏幕输出文字的颜色设计一些字母表示墙、箱子、箱子在目的地和目的地设计记忆功能和判断功能,时刻记忆小人和箱子的移动并判断箱子和小人所能移动的方向结束判断玩家有没按Esc键和空格键,以执行退出游戏和把本关卡重置到开始状态!○5 :主要是在玩家不能通关的情况下,判断玩家有没按空格键,让本关重置到开始状态重新玩本关卡!当玩家不玩游戏时按Esc键可以退出游戏!。