- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[推箱子游戏实习报告书
信息工程学院
数据结构与C语言综合训练报告
(2012~2013学年第 二学期)
报告题目:____推箱子的最短路径_ __
姓 名:_ __ 程 榜____
专 业: 软件工程
年级班级:___2012级2班___
指导教师: 刘全中
完成日期: 2013年7月21号
一、综合训练目的和要求
本综合训练是计算机科学与技术、信息管理与信息系统、软件工程、电子商务专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》、《数据结构》课程后进行的一次全面的综合练习。本课综合训练的目的和任务:
1. 巩固和加深学生对C语言、数据结构课程的基本知识的理解和掌握
2. 掌握C语言编程和程序调试的基本技能
3. 利用C语言进行基本的软件设计
4. 掌握书写程序设计说明文档的能力
5. 提高运用C语言、数据结构解决实际问题的能力
二、综合训练任务内容
1.题目要求:
推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个5×5的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个角上那么箱子就不能再被移动了,如果箱子被推到一面墙上,那么箱子只能沿着墙移动.同时,房间里头还有若干障碍物(用阴影部分表示)。
现在给定房间的结构,箱子的位置,搬运工的位置和箱子要被推去的位置,请你计算出搬运工至少要推动箱子多少格.
扩展实现的内容:
绘制图形界面,通过按钮实现推箱子的整个过程,整个过程中可以动态的看到箱子的移动。
游戏界面如下图:
游戏动态移动的过程图如下:
三、总体设计
所用算法主要是根据广度优先搜索,纪录路径,然后利用回溯法实现最短路径的查找并纪录保存下来。所用的数据结构主要为顺序结构。
四、详细设计说明
1、推箱子游戏具有的功能
(1)能够显示主菜单和界面
游戏需要提供主菜单进行选择,同时能够把地图文件中的信息转换成为图像 显示到游戏界面上。
(2)能够实现键盘操作功能
能够接收到空格键信息,按照软件内部实现的箱子移动到相应的位置。
能够进行关卡选择功能
进入开始游戏的界面时,可以进行游戏的关卡的选择,然后利用空格键进行箱子的移动。
提供游戏说明功能
进入游戏说明界面时,可以了解游戏的一些规则,及如何进行游戏。
程序结构设计
运用C++语言,以及VS2010开发环境
(1)、typedef struct Pnode{
int row;
int col;
int weight;
struct Pnode* back_man;
}Pnode, * Position;
某一点的坐标表示,当用来实现箱子的最短路径的搜索时,back_man 用来存储箱子移动一个位置后,人所在的位置。
(2)、typedef struct Mnode{
int mrow;
int mcol;
char maze[MAX_ROW][MAX_COL];
}MNode, *MazeType;
用来存储地图的信息
、算法的实现
主要有两个类,第一个类是class ShortestPath ;
第二个类是class ManBoxStep: public ShortestPath ;
A、第一个类class ShortestPath 是用来实现地图中任意两点之间的最短路径,成员函数及其功能如下:
Position NextPosition(Position curpos, int di);
用来计算当前点在四个方向下的移动一格得到的下一点的坐标位置,并返回;
bool CanArrive( vector listPosition vec);
数据成员有start,end,此函数是判断在地图中能否从 start 到 end ,并利用广度优先搜索搜索从start 到end 的路径,并把所有搜索过的位置全部记录在顺序容器 vec 中,vec[i] 表示存储一系列与start 位置相距i 个格子的被搜索的点的位置;
void RecordWay( vector listPosition vec, vectorPosition way);
此函数根据 vec 中所存储的数据,利用回溯法进行往回搜索,找到从 start 到 end 的最短路径, 并把路径存到容器 way 中;
B、第二个类class ManBoxStep 是利用第一个类中的函数实现人和箱子一起从起点到箱子应到的位置的最
您可能关注的文档
- [探析影响大学生学习积极性的主要原因及对策.doc
- [陈正松老师正确人生观念.docx
- [华科初试真题.doc
- [华约自主招生语文试题精选及答案解析.doc
- [陈步峰先生竭诚欢迎更多的文化之音关注支持参与服务文化新科学的撞击传播共享提升.doc
- [探究思品教学中生活化资源原版2012.10.doc
- [华职三饭堂问卷调查策划书.doc
- [陈武杰2014年导学案.doc
- [销售的含义.ppt
- [华苑小学张润芳期末试卷.doc
- 2025年中国衬胶防腐设备市场调查研究报告.docx
- 2025年中国电厂凝汽器市场调查研究报告.docx
- 2025至2031年中国一位三极带接地插头行业投资前景及策略咨询研究报告.docx
- 2025年中国军用士兵鞋市场调查研究报告.docx
- 2025至2030年中国不锈钢输液泵数据监测研究报告.docx
- 2025年聚四氟乙烯膜滤芯项目可行性研究报告.docx
- 2025至2031年中国柴油机组自动监控模块行业投资前景及策略咨询研究报告.docx
- 2023贵州黔西南州兴仁市创薏农业产业投资集团有限公司招聘3人笔试参考题库附带答案详解.pdf
- 2025至2031年中国储酸槽行业投资前景及策略咨询研究报告.docx
- 2025年中国24通道DMX信号解码器市场调查研究报告.docx
文档评论(0)