




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号 武汉理工大学华夏学院 课 程 设 计 报 告 书 课程名称: 软件综合 题 目 : 基于 “推箱子”游戏软件的开发与测试 系 名: 信息工程系 专业班级: 姓 名 : 指导教师 : 2013 年 元 月 18日 课程设计任务书 学生姓名: 专业班级: 软件 2101 指导教师 : 工作单位 : 信息系计算机教研室 设计题目 : 基于 “推箱子”游戏软件的开发与测试 初始条件: 1. 已完成 c 语言程序设计、软件工程、数据库概论或数据库技术等课程的学习 2. 系统环境: 腾 4 以上处理器, 1G 以上内存, 40G 以上硬盘, 程环境, + 程工具 要求完成的主要任务:( 在规定的时间内完成下列任务) (包括课程设计工作量及其技术要求,以及说明书撰 写等具体要求) 主要任务: 系统完成用户登录及管理员增加、删除、修改、查询功能 1 按系统功能进行 游戏背景区域(移动区域、围墙)的设计与绘制: 2 根据系统实现的功能 ,绘出功能图、系统流程图 3 模块调试 ,运行结果正确,并经教师检查及答辩; 设计报告撰写 格式 要求:( 课程设计报告按统一通用格式书写) 具体内容如下: 设计任务与要求 总体方案与说明 程序主要模块的流程图 问题分析与解决方案的设计思想和改进设想 系统的 调试记录、调试报告(即在调试中遇到 的主要问题、解决方法及改进设想) 小 结与体会 附录: 使用说明 参考资料 时间安排: 2012年 12月 29日 8日 (共三周) 第 1 天 介绍本次课程设计的目的、要求,介绍 第 2 天第 5 天 介绍 的窗口消息的创建及用,完成游戏背景区域(移动区域、围墙)的设计与绘制 第 6 天第 9 天 完成目标区域、小人、箱子的绘制、绘制地图、加载 /更新地图、关卡的设置及系统整合 第 10 天 系统运行与演示 第 11 天第 14 天 系统测试与掌握 调试的方法和技巧 , 撰写设计 报告 第 15 天 按项目组进行演示与答辩,形成课程设计报告文档 指 导 教 师 签 字: 2012年 12月 28日 系 主 任 签 字: 年 月 日 目 录 1 引言 . 1 2 项目需求分析 . 1 3 系统概要设计 . 1 能控制模块 . 1 统流程图 . 2 箱子游戏具有的功能 . 3 够显示主菜单和界面 . 3 够实现键盘操作功能 . 3 够把放置到位置的箱子进行变色显示 . 4 戏胜负判断功能 . 4 持关口选择功能 . 4 箱子功能框架 . 4 戏界面设计 . 5 戏主界面 . 5 戏菜单与帮助结构设计 . 5 戏中关卡选择对话框设计 . 6 戏的界面实现 . 6 卡选择对话框的实现 . 7 4 详细设计 . 10 图文件读取模块的设计与实现 . 10 图绘制模块的设计与实现 . 10 盘操作模块的设计与实现 . 12 戏规则模块设计与实现 . 12 5 . 14 试快捷键 . 14 踪调试 . 14 常调试 . 15 6 功能测试 . 17 菜单和界面显示功能测试 . 17 盘操作功能测试 . 17 子放置到指定位置时变色显示功能测试 . 19 持地图扩展功能的演示 . 20 7 特殊问题及解决方法 . 21 8 设计小结 . 21 9 参考文献 . 21 1 1 引言 最经典的推箱子游戏,类似的游戏你一定早就玩过。要控制搬运工上下左右移动,来将箱子推到指定地点 记得几年前,推箱子在 上刮起了一股不小的益智类游戏的旋风,现在许多资深玩家也都对推箱子赞不绝口,可见有深度的益智类游戏是非常受大家欢迎的。 推箱子游戏 1981 年由 日本人 今林宏行首创,是在 1982 年 12 月由 司首次发行,名 “ 仓库番 ” 。箱子只可以推 , 不可以拉 , 而且一次只能推动一个,胜利条件就是把所有的箱子都推到目的地。 推箱子游戏是一种老少皆宜的益智游戏,既可以开发青少年学生的 智力 ,又可以防止老年痴呆症,全家一起攻关还可以促进家庭和睦,何乐而不为? 推箱子游戏是目前比较流行的游戏之一,很多操作系统或者流行软件都会带有这种游戏。它既能锻炼思维的严密性,又有很多乐趣。我们团队比较喜欢玩这个游戏,于是备采用 c+编程语言进行实现。 2 项目需求分析 用户可以进行开始游戏,退出游戏,选关, 重新开始 游戏等 操作。有结束 提示 。 作为一款极为经典的游戏,推箱子吸引了一代代玩家乐此不疲,通过使用 +行设计,将学习过的知识应用到实际程序中,以便于为以后的进一步学习奠定基础。 推箱子游戏的设计目标完成一个比较简单的游戏,使之能够实现推箱子游戏的基本功能,成为一个比较完整的游戏框架。 在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。 在游戏主界面中,会出现一个小人、若 干个箱子和箱子放置点。玩家需要利用方向键控制小人上下左右移动,并推动界面中的箱子到达指定的箱子放置点。 3 系统 概要设计 能控制模块 系统功能如图 3示。 2 图 3能模块 统 流程图 系统流程如图 3示。 功能控制模块 关卡重置功能 指定位置状态判断功能 屏幕输出功能 游戏通关时的通关提示 时刻判断游戏的小人物、箱子所能移动的方向位置和游戏能不能通关 倒回本关的初始状态和重新选择关卡 3 图 3统 流程图 推箱子游戏具有的功能 够显示主菜单和界面 游戏需要一共主菜单让玩家进行游戏设置,同时能够把地图文件中的信息转换成为图像显示在游戏界面上。 够实现键盘操作功能 能够接受到键盘驶入的方向键信息,并根据不同的方向键把游戏人物移动到相应的位置。例如,当玩家单机方向键向上“上”时,如果向上的位置是可以移动的,那么就当把游戏人物向上西东一个方格。 初 始化主界面 开始 退出 选择关卡 初始化进入新游戏 继续 关于推箱子游戏 成功提示 关闭游戏窗口 游戏规则的说明 进入下一关 通关提示 返回 返回 是否是最后一关成功 进入上一次离开游戏的界面 4 够把放置到位置的箱子进行变色显示 当玩家把箱子推到指定位置的格子时,需要把这个箱子进行变色,这样就能明 确的现实出该箱子已经放置到指定位置。 戏胜负判断功能 在游戏中,当玩家把所有的箱子都推到指定点时,玩家胜利通过当前游戏关口,进行下一关口的游戏。如果玩家无法将箱子全部推到指定位置时,玩家失败,玩家可以选择重新开始进行当前关口的游戏,还是退出游戏。 持关口选择功能 玩家在游戏中可以自行选择需要挑战的关口。当玩家点击菜单中的“关卡选择”,并在对话框中输入所需要挑战的关口,设置完毕后点击开始即可打开所需关口。 箱子功能框架 图 3能框架 初始化模块。该模块包括屏幕初始化和游戏第一关到第最后一关的初始化。屏幕初始化用于输出操作信息,游戏每一关的初始化时构建每一关的关卡。 画图模块。该模块最要是被其他模块调用,用于画墙、在空地画箱子、画小人、和画目的地。 移动箱子模块。该模块用于移动箱子,包括目的地之间、空地之间和目的地与空地之间箱子的移动 移动小人模块。该模块用于移动人物,包括目的地之间、空地之间和目的地与空地之间人物的移动 推箱子游戏 初始化模块 画图模块 移动箱子模块 移动小人模块 功能控制模块 5 功能控制模块。该模块是几个功能函数的集合,包括屏幕输出功能、指定位置状态功能 和关卡重置功能。 游戏界面设计 游戏主界面 推箱子游戏主界面设计如图 3示 图 3计的游戏主界面 游戏菜单与帮助结构 设计 图 3戏菜单结构 6 图 3助结构设计 游戏中关卡选择对话框设计 图 3卡选择对话框 当玩家在对话框中输入关口数字,并重新点击开始游戏时,游戏会自动选择对应关口的地图级别开始新游戏。 戏的界面实现 在推箱子游戏中,通过如下几步即可实 现游戏的菜单 在推箱子游戏工程的资源中添加一个菜单资源,其属性如表 3 表 3源属性 类别 说明 弹出菜单 游戏的主菜单 菜单栏 重新开始 菜单栏 关卡选择 菜单栏 游戏退出 1给每个菜单栏添加相应函数到 2菜单响应函数的实现,各类菜单调用响应,要运用到的代码如下: /退出游戏响应 i=退出游戏 ,提示 , 7 i) : ; : /关卡选择 ; ; /重新开始 ; 关卡选择对话框的实现 推箱子游戏关口选择对话框的实现,分为如下几步: ( 1) 创建一个对话框资源,并添加相应的控件,如图: 图 3口选择对话框资源 ( 2) 在资源视窗中, 击 加一个“选关”选 8 项,随便修改一个 3) “查看 -建立 类向导 ”( ) ,第一个选项卡,找到“选关”选项的 中 右边按钮添加函数 。 图 3添加函数图 1 ( 4) 接下来资源视窗, 加一个编辑框,修改编辑框 看 -建立 类向导 ” ,添加新类,填好类名就会自动生成 类选话框 3加函数图 2 ( 5) 为编辑框添加一个变量,用来存储编辑框获得的数据。选项卡 名选上面那个对话框的类名,选中编辑框的 加变量 9 图 3量设置 ( 6) 要想在 须包含头文件: #最后,选项卡关联函数中 调用这个对话框类: /关卡选择 / ; ; / %d, / ; 选关功能完成 10 4 详细设计 地图文件读 取模块的设计与实现 地图文件读取模块,主要负责将对地图文件读取,并把相应的文件数据转换成地图显示出来。其设计步骤如下: ( 1)读取当前文件夹中的地图文件。 ( 2)判断当前选择关口是否在文件夹中存在。 ( 3)如果存在则把当前关口的地图信息放置到地图数组中。 其实现代码如下所示: %d, /格式化字符串,即将关卡编号变成 X ./; /打开地图文件 20; /创建临时字符数组 0, /读取一行到数组中 )!=0) /读取与当前关口编号相同的地图 0, i=0; /根据按下的按键进行判断 ) /调用规则模块函数,判断是否胜利 恭喜你!过关! ); ; /胜利后将当前关口加 1 ; /如果大于最大关口编号,重新开始 ; 戏规则模块设计与实现 游戏规则模块,主要负责游戏规则的判断。其设计方法需要在每次玩家移动人物后,对当前地图数组进行判断。如果当前地图中存在单独的“目标区域”或者“人物站在目标上”两种情况,就说明玩 家未过关,放置就死过关。 游戏规则模块的实现,代码如下: /判断是否过关 13 i=0;调试 函数堆栈,用 者 口 1. 如何显示 :在任意工具栏的位置,单击鼠标右键,勾选 : 申:工具栏和工具条的区别? 一个工具栏可以放置多个工具条。 2断点调试 置或去除断点。如果当前行未设置断点,按 在当前行设置断点,如果当前行已设置断点,按 9:调出断点设置窗口 在这个窗口里可以设置断点,去除所有已经设置的断点或者单个断点,也可以转到已设置 的断点处,通过按钮 以设置需要被计算的表达式,可以设置,监视 (组或结构体元素的个数,可以在窗口过程函数中设置断点,可以为任何一个想要监视 (消息 (置一个断点。 3开始调试 : : : 于非调试阶段,按 于开始调试。对于调试阶段 (已经进入调试阶段 ),按 一旦按 里 面包含一些常用调试手段 ) 这里列出不常见的两个,有 以通过点击 这里可以看到一些模块 (如 以 。这里略过,我也不是很熟悉。 迎大牛补充。都说说是怎么用的。 : :5 5重新开始调试 (或者说重头开始调试 ) 这个功能既可以在调试阶段使用, 也可以在非调试阶段使用,用于进入调试阶段。 在调试阶段,它的功能如下:(即不停止调试的情况下) 如果在一个程序里有多个断点,比如断点 1、断点 2、。断点 入调试阶段,程序首先执行到断点 1 处,如果再按 会执行到断点 2 处,依次类推,直到断点 5处,如果当程序执行到断点 5处,再按 程序不会再中断,程序完全运行起来。 可是,在调试阶段,如何从断点 2断点 5处之间的任意一个断点跳到断点 1处去重新执行呢?比如,程序已经执行到断点 4处,现在程序员想回到断点 1处,重新再查看 (监视)每个断点处的情形(也许是他记性不好,也许是他眼花了,也许是他操作太快,比如多按了几下 (*_*) ,这种情况大家也碰到过吧,往往很多人选择了,停止调试,再重新开始进入调试,再重新来一遍,当然,这样可以,只是有点麻烦。) 现在,其实还有一种方法。我之前也没发现。 这种情况下,就可以用重新开始调试了(注意,这个重新开始调试是指再不停止调试的情况下,重新开始调试),比如,现在在断点 4 处,想回到断点 1处,就可以按 5(重新开始调试的快捷键) 16 : : 5 前提条件 : 逐语句。(例如,遇到函数调用时会进入被调函数) : 逐过程(例如,遇到函数调用语句时,不会进入被调函数) : 11) 跳出过程调用(例如,当 语句进入被调函数后,按 11会跳出被调函数) : 10) 运行到光标所在位置。(注:貌似执行只能向前不能向后,即光标定位不能在已经执行过的代码里),经测试,如果光标在已执行的代码里,按 10则程序会完全执行起来,猜测。是不是执行完程序,再重新,从头开始执行到光标处,貌似显示的是没执行到光标处。 : 9) 调出 加要监视查看( 表达式( 然后 序之后就会监视该表达式 : ) 监视你设置的需要被监视的变量。 : ) 监视所有变量。 注: 的所有项均在 具条中有。 注:在 以将变量选中,直接拖到 。,是不是很方便很 17 6 功能 测试 主菜单和界面显示功能测试 这个演示主要是测试游戏的菜单和界面显示是否成功,其步骤如下。 ( 1) 运行推箱子程序 如图 6 图 6行文件 ( 2) 程序启动后,其菜单及界面如图 6图 6面效果 键盘操作功能测试 键盘操作功能的演示,演示步骤如下: ( 1) 游戏开始后人物的位置,如 图 6 18 图 6 2) 按下键盘上的“下”方向按键。 ( 3) 查看任务是否向下移动,如 图 5 图 619 箱子放 置到指定位置时变色显示功能测试 将箱子放置到指定位置时,箱子会变色的功能,具体步骤如下 ( 1) 推箱子游戏已经开始,如 图 6图 6 2) 推动箱子到指定位置后,显示如图 5图 620 持地图扩展功能的演示 推箱子游戏是否支持地图 扩展功能,步骤如下: ( 1) 查看第一关地图文件,其内容如下: ( 2) 与游戏显示的地图对照 图 6一关地图文件 图 6改后的地图文件 ( 3) 重新进行第一关游戏,地图显示 图 621 7 特殊问题 及 解决方法 1、 问题 1 问题描 述 记录所有走过的步数总是不成功 解决方案 设置变量 解决结果 可以记录所有走过的步数,当游戏重新开始的时候本关的步数清零。 2、 问题 2 问题描述 在初始化地图函数时,由于每加载地图均要将目的地存储于 E中,由于人物移动过程中当人物占领目的地时,目的地 E存储内容也会随之改变,事实上 面的值是不会变的 解决方案 对 E的值只初始化一次,记在选关按钮按下时,或游戏结束时才初始化,当人物移动时,当加载目的地图片时,不再 对 E进行赋值。 解决结果 目的地的图片正常显示,成功判断当前关是否成功 8 设计小结 从工程实践开始前两周,原计划使用 发程序,因为较 用程序熟悉,但是后来考虑到运用 用程序能使得开发更为灵活,且
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 证券投资AI应用企业制定与实施新质生产力项目商业计划书
- 环保型颜料与染料企业制定与实施新质生产力项目商业计划书
- 高精度pH计行业跨境出海项目商业计划书
- 高效空气净化器企业制定与实施新质生产力项目商业计划书
- 高蛋白低脂酸奶行业深度调研及发展项目商业计划书
- 个性化情感支持与社会行为促进-洞察阐释
- 低空旅游线上推广企业制定与实施新质生产力项目商业计划书
- 纺织品产业链绿色供应链管理-洞察阐释
- 气门结构优化与制造技术研究-洞察阐释
- 农牧产品品质评价-洞察阐释
- 患者发生过敏性休克应急预案演练脚本模板
- 南京医科大学招聘考试《综合能力测试》真题及答案
- 封闭冷通道施工方案
- 2021年新高考全国1卷(含答案解析)
- 《触不可及》影视鉴赏课件
- 认知知觉障碍的作业治疗概述(作业治疗技术课件)
- 毕业论文与毕业设计指导课件
- 采购合同一般采购合同
- 形象管理(南开大学)【超星尔雅学习通】章节答案
- 《鲜衣怒马少年时 唐宋诗词篇 全集 》读书笔记PPT模板思维导图下载
- 施工方案设计(宿舍楼装修改造)
评论
0/150
提交评论