摘要
推箱子游戏是一款很有趣味的游戏,气开发过程有一定的技巧和方法,其中涉及到软件中断,二维数组,键盘操作以及图形化函数等方面的知识。本游戏的开发者需要基本掌握显示器中断寄存器的设置。二维数组及结构体的定义,键盘上键值的获取,方式下光标的显示各定位,以及部分图形函数的使用。
关键字:推箱子 过程 开发
前 言
推箱子游戏是目前比较流行的游戏之一,很多操作系统或者流行软件都会带有这种游戏。它既能锻炼思维的严密性,又有很多乐趣,我个人也比较喜欢玩这个游戏,因此,我就借这个机会将这个推箱子游戏用汇编语言实现出来,当然,我也借鉴了前人的一些技巧经验,由于时间仓促和本人水平有限,此游戏的制作显得很粗燥,希望老师能够谅解,我以后将会再接再厉。
                   
计算机科学与技术专业(11级)
汇编语言实训 课程设计任务书
题    目:  推箱子游戏程序    班    级:11计算机科学与技术1班 
学生姓名:      任元元          学    号: ********                       
题目类型:  软件工程(R)        指导教师:      刘树           
一.题目简介
通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对汇编语言基本语言要素和流程结构的理解,针对汇编语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。得到软件工程的综合训练,提高解决实际问题的能力。
二.设计任务
1、查阅文献资料,一般在5篇以上;
2、完成软件结构设计和算法设计;
3、完成系统的软件开发和测试工作;
4、撰写设计说明书;
5、做好答辩工作。
三.主要内容、功能及技术指标
1、实现功能及指标:①使用Win32的窗口程序模式,实现推箱子游戏程序的设计与开发;②计算出箱子的位置、范围和形状有效性;③游戏的难度级别的关卡设定;④界面友好。
2、问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图
3、详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基
础上进行代码设计,每个明确的功能模块程序一般不超过200行,否则要进一步划分。
4、上机前程序静态检查:上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。把程序中的明显错误事先排除。
5、程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果
6、完成课程设计报告
① 需求和规格说明:设计题目和问题描述:题目要解决的问题是什么;
② 设计思路:主要算法思想,程序功能图,函数之间的调用关系图
  设计表示:每个函数或过程的功能,列出每个过程或函数所调用的过程或函数,并画出各函数的流程图;
  详细设计:主要算法的伪代码;
③ 调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等;
④ 程序实现注释;
⑤ 附录:源程序清单和结果。如果题目规定了测试数据,则结果要求包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。
四.提交的成果
1. 设计说明书一份,内容包括:
1) 中文摘要100字;关键词3-5个;
2) 前言;
3) 系统分析(包含需要的系统流程图);
4) 系统总体设计(包含总体软件结构图、总体数据结构);
汇编语言清华大学出版社5) 详细设计;
6) 系统测试(包含测试方案、测试用例、测试结果及软件可靠性分析);
7) 软件使用说明书(核心界面说明);
8) 设计总结、参考文献、致谢等。
2. 刻制光盘一张。
五.主要参考文献
1 王爽.汇编语言(第二版).清华大学出版社, 2008。
2 沈美明,温冬婵.IBM-PC汇编语言程序设计(第二版).清华大学出版社, 2001。
3 [美]Kip R.Irvine著,温玉洁,等译.Intel汇编语言程序设计(第五版).电子工业出版社, 2007。
4 钱晓捷.汇编语言程序设计(第二版). 电子工业出版社, 2003。
5 罗云彬.Windows环境下32位汇编语言程序设计(第二版).电子工业出版社, 2006。
6  Windows API函数参考手册.人民邮电出版社, 2002。
一 系统分析
本游戏为推箱子游戏,即通过移动方向键来控制小人去推动箱子,直到把所有的箱子都推动到各个目标中。游戏需要在人物行走过程中无法穿越墙和箱子,并在有限的范围中放好各箱子,且每次只能搬运一个箱子。所基于的语言是8086汇编,使用的编译环境是唐都的集中开发环境TD-PIT。
本次设计的基本思想是通过将不同的元素(墙、路、箱子、人、目标位)抽象为不同的矩阵,然后将所设计的地图描抽象成一个控制矩阵来控制图像的显示,每一个控制矩阵块代表一个元素,我们通过不断刷新控制矩阵来达到显示人物移动及推箱子的效果。
1.1推箱子游戏具有的功能
(1)显示主菜单和界面
游戏需要提供货源主菜单让玩家进行游戏设置,同时能够把地图文件中的信息转化成图像显示到主游戏界面上。
(2)能够实现键盘操作功能
能够接收到键盘输入的方向键信息,并根据不同的方向键把游戏人物移动到相应的位置。例如,玩家按方向键“上”时,如果向上的位置是可移动的,那么就当把游戏人物向上移动一个方格
(3)能够把放置到位置上的箱子进行变显示
当玩家把箱子推到指定位置的格子时,需要把这个箱子进行变。这样就能明确的显示出该箱子已经放置到指定的位置上。
(4) 支持游戏的时间计时和步数记录
当玩家开始游戏时就开始计时,游戏中的小人物每走一步就会记录一次步数。
(5)支持游戏的隐藏和引爆功能
如果玩家无法将指定的箱子全部推到放置点时,可以通过游戏中设的隐藏引爆阻挡的墙可以继续游戏。
(6)支持关口选择功能
  玩家在游戏中可自行选择需要挑战的关口。当玩家点击菜单中的“下一关,  上一关”按钮时可进行关口的调节
(7)游戏是否通关判断功能
在游戏中,当玩家把所有的箱子都推到箱子放置点时,玩家胜利通过当前游戏关口,进行下一关口的游戏。如果玩家无法将指定的箱子全部推到放置点时,玩家失败。玩家可以选择重新进行当前关口的游戏,还是退出游戏。
(8)游戏提供帮助说明
在游戏的菜单中,提供一个使用说明项,以便对本游戏不了解的玩家对游戏进行操作和使
用。
系统总体设计
2.1功能模块的设计
    系统模块图
  本程序包括六个模块,分别是初始化模块,画图  模块,移动箱子模块,移动小人模块,作弊模块和功能控制模块,各个模块的功能描述如下
(1)初始化模块
该模块包括屏幕初始化和游戏第一关的初始化。游戏每一关的初始化是构建每一关的关卡。
(2)画图模块
该模块主要是被其他模块的调用,用于画墙,在空地画箱子,画小人和画目的地。
(3)移动箱子模块
该模块用于移动箱子,包括目的地之间,空地之间和目的地与空地之间的箱子移动
(4)移动小人模块
该模块用于控制小人移动,从而推动箱子到目的地。
(5)作弊模块
该模块用于无路可走的情况下,可以把墙炸掉,可以给箱子提供一个可走的路。
(6)功能控制模块
该模块是几个功能函数的集合,包括屏幕输出功能,指定位置状态判断功能和关卡重置功能
               
                                               
                     
                     
三  详细设计
    游戏从第一关开始,按上下左右方向键控制小人移动来推动箱子,可以在游戏中的任何时候按键退出,如果游戏无成功希望,可以按空格键回到当前任务的开始状态;如果成功完成当前关,则进入下一关,如果当前关是最后一关,则显示通关信息,提示游戏结束。         
                   
                                 
                 
                                   
                   
                                 
                     
                   
                     
                 
                                   
                                 
                   
                                     
                   
              任务执行流程图

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。