1、i基于 Java 的推箱子游戏设计与实现摘 要社会在进步,人们生活质量也在日益提高。高强度的压力也接踵而来。社会中急需出现新的有效方式来缓解人们的压力。此次设计符合了社会需求,Java 推箱子游戏可以让人们在闲暇之余,体验游戏的乐趣。具有操作简单,易于上手的特点。推箱子游戏的玩法十分简单控制人物绕过障碍物,到达目的地。此次毕业设计基于 Java 语言。将游戏地图做成通用的关卡设计,关卡用二维数组实现,在二维数组中设置值域来表示不同对象,运用二维数组的遍历算法来加载对应图片实现了游戏图片初始化状态。同时,通过初始化多个不同二维数组实现了游戏地图关卡的设计,方法巧妙且简单易行,有效的解决了图片排布
2、问题。充分运用类和方法的调用来实现游戏关卡的初始化。用读取键值的方法判断游戏人物移动、停止、到达目的地。舒缓的音乐配合有趣的步骤,相信能引起很多人的兴趣。作为一个具有悠久历史的游戏,也能够引起人的怀念和共鸣。关键词 Java 游戏 二维数组 算法 读取键值 栈iiSokoban based on JavaAbstractSocial progress, quality of life is also increasing. High-intensity pressure also follows. The emergence of new social urgently needed an e
3、ffective 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 games rule is very simple - control characters around obstructions, to
4、arrive at the destination. The graduation project is based on Java language. Game map to make a generic level design, level with two-dimensional array implementation, set the domain in a two-dimensional array to represent different objects, using the two-dimensional array of times calendar calculati
5、on method is realized to load the corresponding picture game image initialized state. At the same time, through the initialization of several different two-dimensional arrays realized the design of the game map level, a method is clever and simple, easy to effectively solve the problem of the pictur
6、e arrangement. Make full use of calling classes and methods to implement the initialization of the game levels with reading the key value method to judge the characters move, stop, or reaching its destination. Soothing music with interesting step, which will hopefully lead to a lot of peoples intere
7、st. As a game with a long history, but also can cause people to miss and resonance.Key Words: Java game; two-dimensional arrays; algorithm; key value method; stack;目 录摘 要 .iAbstract .ii引 言 .11 系统分析 .21.1 技术可行性分析 .21.1.1 可行性目的 .21.1.2 可行性研究前提 .21.1.3 算法可行性分析 .21.1.4 平台选择 .61.2 需求分析 .61.2.1 引言 .61.2.2
8、 游戏需求 .61.2.3 软硬件需求 .91.2.4 接口控制 .101.3 方案论证 .101.3.1 C+语言的优点 .101.3.2 Java 语言的优点 .111.3.3 C 语言的优点 .131.3.4 方案选择 .142 概要设计 .162.1 游戏设计分析 .162.1.1 地图文件的引用 .182.1.2 程序运逻辑 .192.1.3 绘图 .202.1.4 显示平台 .222.2 注意事项 .242.3 游戏流程图 .242.4 函数模型 .253 详细设计 .283.1 游戏总体结构与代码 .283.2 选关模块 .293.3 地图的绘制形成 .303.4 小人与箱子移动
9、的算法 .313.5 小人上下移动模块 .333.6 悔棋模块 .343.7 音乐控制 .354 游戏测试 .384.1 软件测试 .384.1.1 软件测试简介 .384.2 测试方法 .384.3 测试步骤 .384.4 游戏系统性能分析 .415 项目经验与总结 .426 参考文献 .447 致谢 .458 外文原文及中文翻译 .461引 言策略性游戏可以锻炼人的思维能力还能缓解人的压力,使人们暂时忘却生活当中的烦恼,增强人们的逻辑思维能力,游戏的艺术美也吸引着越来越多的玩家和厂商,寓教于乐,在放松人们心情的同时还可以活跃双手。在人类的社会生活当中,游戏占有很大的比重,并且随着社会的发展
10、而不断发展。而且游戏本身具有激发人类潜在行为的特质,是一种能够吸引人们参与其中的活动,其本身具有强烈的吸引力使游戏者卷入其中;再者适当的游戏、合理的时间安排,能够让玩家在娱乐的同时还可以锻炼其反应速度及灵敏程度,亦可让玩家从压力中释放出来。因此游戏逐渐成为人们生活中不可缺少的一部分,游戏产业也正逐步发展成熟。经典的推箱子游戏是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力。它的玩法也非常简单,在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,控制人物不停的移动将箱子推到目的位置才能
11、顺利的完成任务。难点在于移动的位置,以及箱子到达指定位置的顺序,只有多加思考才能获得游戏的胜利。反复推敲,锻炼了人们的耐性。本次的开发尽量多的设置了关卡数目,增强游戏的耐玩性,同时在画面上有所提高,借鉴了许多达人的经验和技术,引发了我对游戏的热爱,丰富了个人生活,相信推箱子游戏在今后的社会总会越来越引人注目。231 系统分析1.1 技术可行性分析1.1.1 可行性目的通过推箱子游戏中使用的 Java 技术,让我能够更加熟练的使用 Eclipse。同时了解相关运行环境的配置。将理论知识和实际操作结合起来。达到学以致用的目的。网上资料的查询极大的提高了我的自学能力。希望经过此次设计,锻炼自己的思考
12、,解决问题的能力。对系统开发的流程有更深层次的理解,检验学习成果和实际动手能力,对底层知识有更深的了解。为今后的工作打好基础。1.1.2 可行性研究前提基本需求:通过规范的开发流程,采用面向对象的分析设计方法实现游戏美观,易玩,及时等特性。操作性方面主要通过键盘的借口实现,操作键位是上下左右。主要开发目标:通过此次研究熟练 Java 的相关知识和技术的应用,界面美化的工作需要同学的帮助,了解团队和合作的重要,熟悉不同领域相关技术的交叉,完成 Java 推箱子游戏的基本功能。条件假定和限制:Java 相关技术的使用不是很熟练,如果有些游戏 bug 没有及时发现,相关升级版本需要之后弥补,更正。可
13、行性研究所采用的方法和步骤,通过研究分析推箱子小游戏所需要的功能以及实现的方法、确定主体结构。利用所学到的知识,以最简洁、最容易的办法,边开发边测试边修改,实现一个初级游戏软件。评价尺度,实现基础的推箱子功能,如输赢判定,人物的移动位置,箱子的移动位置,同时加强画面的优化,音乐的选定等基础功能。更强的优化需要以后的升级和修改,实现相关功能就达到目标。1.1.3 算法可行性分析管理可行性:4此次设计基于 Java,有面向对象,可移植性,安全性,并发机制,支持可视化图形界面等特点。易于管理。经济可行性: 经济可行性是指可以使用的资源的可能性(资源包括人力资源、自然资源和资金条件)。经济可行性的内容
14、经济可行性包括两个方面的内容:一是某一备选方案占有和使用经济资源的可能性,进而实现政策目标的可能性;二是实施某一政策方案所需花费的成本和取得的收益。政府的财政资源是有限的,任何政策方案占有和使用的经济资源也是有限的。因此,任何一项公共政策都存在一个争取公共经济资源的问题。一般说来,“公共政策的经济资源的占有量与其政策目标的期望值成正比例关系。”当然,这还涉及到一个成本效益问题。如果某一方案的成本大于收益,显然这项政策是不可行的。经济可行性的方法评估经济可行性有两个基本方法:成本效益分析或损益分析,成本效能分析(或称成本有效性分析)。经济可行性的标准经济可行性的具体标准有投入产出比(O/I)、效
15、率(efficiency)、效力(effectiveness)、利润率(profitability)等。这里主要特别说明效率和效力这两个概念。效率是以最小的投入取得最大的产出;效力则是以最小的成本实现即定的目标。二者虽然相关,但却不能混淆,最高效率和最高效力不一定出现在同一个点上。举一个简单的例子,你购买一本书的最小成本是 20 元,但当你同时买 10 本同样的书时,只需 180 元。这后一种显然更有效力(一本书的成本只要 18 元),但问题是同样的书你只要一本就够了,显然这后一种就不能满足你最基本的目标了。本次设计注重游戏功能的实现,达到设计目的,不用于其他的商业用途。通过此次设计增强 Java 技术和实践的结合。同时了解可视化界面,设计操作界面和页面的跳转更换。操作环境需要 Eclipse。相关资料可以上网查询。硬件方面可以普通笔记本可以达到要求。技术可行性: