毕业论文--Java实现推箱子游戏

上传人:liy****000 文档编号:115180108 上传时间:2019-11-12 格式:DOC 页数:49 大小:2.14MB
返回 下载 相关 举报
毕业论文--Java实现推箱子游戏_第1页
第1页 / 共49页
毕业论文--Java实现推箱子游戏_第2页
第2页 / 共49页
毕业论文--Java实现推箱子游戏_第3页
第3页 / 共49页
毕业论文--Java实现推箱子游戏_第4页
第4页 / 共49页
毕业论文--Java实现推箱子游戏_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《毕业论文--Java实现推箱子游戏》由会员分享,可在线阅读,更多相关《毕业论文--Java实现推箱子游戏(49页珍藏版)》请在金锄头文库上搜索。

1、 太原理工大学毕业设计(论文)用纸摘 要社会在进步,人们生活质量也在日益提高。高强度的压力也接踵而来。社会中急需出现新的有效方式来缓解人们的压力。此次设计符合了社会需求,java推箱子游戏可以让人们在闲暇之余,体验游戏的乐趣。具有操作简单,易于上手的特点。推箱子游戏的玩法十分简单控制人物绕过障碍物,到达目的地。此次试验基于java语言。将游戏地图做成通用的关卡设计,关卡用文本实现在文本文件里设置好关卡, 游戏核心模块中图片随机生成采用了数字和图片绑定,运用随机函数以及数组交换的算法,实现了游戏图片初始化状态,有效的解决了图片排布问题,方案简单易行。充分运用堆栈的存储特点实现悔棋功能。用迭代计算

2、小人和箱子的移动,一个计算人是否能到达某一个格子 一个是计算箱子是否能到达相邻的某一个格子。舒缓的音乐配合有趣的步骤,相信能引起很多人的兴趣。作为一个具有悠久历史的游戏,也能够引起人的怀念和共鸣。关键词 压力;游戏;java;多功能iJava implementation of the Sokoban gameAbstractSocial progress, quality of life is also increasing. High-intensity pressure also follow. The emergence of new social urgently needed an

3、 effective way to relieve peoples stress. This is designed to meet the needs of the community, java Sokoban game allows people in her spare time, experience the fun of the game. With simple operation, easy to use features.Sokoban game play is very simple - control the character around obstacles to r

4、each the destination. The test is based on java language. The game map made generic level design, checkpoints set up checkpoints to achieve with a text in a text file, the game core module uses a randomly generated digital images and pictures binding, using a random array of functions and algorithms

5、 exchange to achieve a game pictures initialization state, effectively solve the problem of picture arrangement, the program is simple. Make full use of the storage characteristics of the stack to achieve undo function. Mobile computing and boxes of iterative villain, a calculation whether one can r

6、each a certain grid is to calculate whether a case can reach a neighboring lattice. Soothing music with interesting step, which will hopefully lead to a lot of peoples interest. As a game with a long history, but also can cause people to miss and resonance.Key Words Pressure; games; java; multifunct

7、ionii目 录摘 要iAbstractii引 言11 系统分析21.1 技术可行性分析21.1.1 可行性目的21.1.2 可行性研究前提21.1.3 算法可行性分析21.1.4 平台选择41.2 需求分析81.2.1 引言81.2.2 游戏需求81.2.3 软硬件需求91.2.4 接口控制91.3 方案论证91.3.1 C+语言的优点91.3.2 Java语言的优点101.3.3 C语言的优点111.3.4 方案选择132 概要设计152.1 游戏设计分析152.1.1 地图文件的引用152.1.2 程序运逻辑152.1.3 绘图152.1.4 显示平台152.2 注意事项152.3 游戏

8、流程图162.4 函数模型163 详细设计203.1 游戏总体结构与代码203.2 选关模块213.3 地图的绘制形成223.4 小人与箱子移动的算法243.5 小人上下移动模块263.6 悔棋模块273.7 音乐控制284 游戏测试304.1 软件测试304.1.1 软件测试简介304.1.2 测试方法304.1.3 测试步骤314.2 游戏系统性能分析31结 论32参考文献33致 谢34原 文35翻 译42 太原理工大学毕业设计(论文)用纸引 言策略性游戏可以锻炼人的思维能力还能缓解人的压力,使人们暂时忘却生活当中的烦恼,增强人们的逻辑思维能力,游戏的艺术美也吸引着越来越多的玩家和厂商,寓

9、教于乐,在放松人们心情的同时还可以活跃双手,在节奏越来越快的生活中,游戏如清风般扑来,丰富了人们的生活,随着时代的进步,游戏产业逐渐壮大,成为人们生活中不可或缺的一部分。推箱子游戏起源于日本,在游戏中人们可以提高逻辑思维能力。它的玩法也非常简单。控制人物不停的移动将箱子推到目的位置。难点在于移动的位置,以及箱子到达指定位置的顺序,只有多加思考才能获得游戏的胜利。反复推敲,锻炼了人们的耐性。本次的开发尽量多的设置了关卡数目,增强游戏的耐玩性,同时在画面上有所提高,借鉴了许多达人的经验和技术,引发了我对游戏的热爱,丰富了个人生活,相信推箱子游戏在今后的社会总会越来越引人注目。1 系统分析1.1 技

10、术可行性分析1.1.1 可行性目的通过推箱子游戏中使用的java技术,让我能够更加熟练的使用myeclipe。同时了解相关运行环境的配置。将理论知识和实际操作结合起来。达到学以致用的目的。网上资料的查询极大的提高了我的自学能力。希望经过此次设计,锻炼自己的思考,解决问题的能力。对系统开发的流程有更深层次的理解,检验学习成果和实际动手能力,对底层知识有更深的了解。为今后的工作打好基础。1.1.2 可行性研究前提基本需求:通过规范的开发流程,采用面向对象的分析设计方法实现游戏美观,易玩,及时等特性。操作性方面主要通过键盘的借口实现,操作键位是上,下,左,右。主要开发目标:通过此次研究熟练java的

11、相关知识和技术的应用,界面美化的工作需要同学的的帮助,了解团队和合作的重要,熟悉不同领域相关技术的交叉,完成java推箱子游戏的基本功能。条件假定和限制:java相关技术的使用不是很熟练,如果有些游戏bug没有及时发现,相关升级版本需要之后弥补,更正。可行性研究所采用的方法和步骤:通过研究分析推箱子小游戏所需要的功能以及实现的方法、确定主体结构。利用所学到的知识,以最简洁、最容易的办法,边开发边测试边修改,实现一个初级游戏软件。评价尺度:实现基础的推箱子功能,如输赢判定,人物的移动位置,箱子的移动位置,同时加强画面的优化,音乐的选定等基础功能。更强的优化需要以后的升级和修改,实相关功能就达到目

12、标。1.1.3 算法可行性分析管理可行性:此次设计基于java,有面向对象,可移植性,安全性,并发机制,支持可视化图形界面等特点。易于管理。经济可行性:本次设计注重游戏功能的实现,达到设计目的,不用于其他的商业用途。通过此次设计增强java技术和实践的结合。同时了解可视化界面,设计操作界面和页面的跳转更换。操作环境需要MyEclipse。相关资料可以上网查询。硬件方面可以使用HP笔记本。所以易于操作。技术可行性:对于本游戏,可以使用如VB,Java,Delphi等相关的编程语言,但是考虑到编写程序的难易程度以及对编译语言的了解程度,本游戏选择JAVA程序语言作为编程语言。需要对变量定义、变量初

13、始化、界面初始化、游戏初始化等,然后就可以进入游戏,处理游戏过程中的各种操作。社会可行性:本次设计基于学习的需要,所做毕业设计的内容不会在社会上进行商业运作。网上所查的资料以及相关的知识的引用,属于学术交流,不涉及版权,以及法律责任。同时不会对社会产生负面的影响,不存在不可行性。现建立一个二维常数队列(a0,b0),将所有位置对应于二维队列中的一个位置。将石头的位置上设定数字2,箱子的位置上设定数字1,空地的位置上设定数字0,将任务初始的位置上设定数字3。这样就完成了初始化的过程。将人物可以直接到达的箱子周围的空地算出来(个人认为这一步深度优先比较好),存入另一个数列中。将人物和箱子的当前位置

14、记入变量i,j中,人物移动到每个位置上后,人物与箱子的位置差绝对值一定为1。用这个差值算出如果箱子可以移动时的下一位置的当前状态,当状态不为0时,舍弃这个位置,即此路不通,这路算法结束;若状态为0,则将箱子的位置和人物位置全部移动到下一位置,这个时候将箱子位置和人物位置记入新的二维常数队列(a1,b1)中。这时再用上一个判断加上这个判断:当变量i,j与二维常数队列(a1,b1)中记录的对应位置一致时认定该路不通,这样用深度优先循环下去。直到得到最终的位置m,n。当然这是一个箱子的算法,要是是两个箱子就将常数列用(a0,b0,c0)代替,然后将第二个箱子的位置写在c0中就可以了。这实际上是一个寻

15、路问题,最简单的用一个广度优先搜索就可以找到最短路径。从角色当前位置开始,每次向所有可能方向展开一层,如下图直到扩展到目标位置。根据节点的父子关系能反推出移动步骤。如下图1-1所示:图1-1推箱子地图演示输出结果很简单,从当前栈底到栈顶,每个元素代表一步移动。由于移动步骤只记录了主角推动箱子的位置,可以根据上一个问题的解决办法,能得到当前主角位置到主角推动位置的路径。要判断当前局面是否在之前的移动步骤上出现过,这个问题到现在我还没有想出特别好的方法。容易想到最笨的方法的是从上到下访问当前栈内所有元素,恢复出之前的所有状态逐一比较,包括主角是否在同一封闭空间。聪明一点的话可以根据关卡状态计算出某种唯一的特征值记录在压栈数据中,只要比较该特征值就可以了。仍然使用问题1的广度优先扩展,容易找出所有和主角所在空间相邻的箱子,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号