推箱子java课程设计(推箱子鼠标移动算法(JAVA编程))
本文目录
- 推箱子鼠标移动算法(JAVA编程)
- 我想要用java编写一个简单的推箱子游戏,里面的移动事件要怎样控制啊
- java推箱子游戏属性
- java推箱子小游戏游戏界面设计思路技术路线
- Java推箱子怎么写啊
- java 游戏 推箱子
- 推箱子游戏 箱子之间的碰撞算法
- 谁有java设计推箱子游戏的代码,要简单点的代码
推箱子鼠标移动算法(JAVA编程)
用迭代把 要写两个方法 一个计算人是否能到达某一个格子 一个是计算箱子是否能到达相邻的某一个格子
我想要用java编写一个简单的推箱子游戏,里面的移动事件要怎样控制啊
监控键盘事件,监控方向键,然后根据方向键判断角色的对应方向是否有箱子,有箱子,在判断箱子的前方是否有路;没有箱子就角色移动到那个位置。假设有个方法判断坐标是箱子还是空地或者越界check(int x,int y)通过返回类型判断,返回类型可以自己定义,这里定义成int类型,0代表箱子,1代表空地,2代表越界if(check(X+1,y)==0){ if(check(x+2,y)==1){ //箱子往右移动一格,同时角色也往右移动一个 }else if(check(x+2,y)==2){ //箱子推不动,角色也不动,箱子到了墙角,给出提示或者保持角色和箱子原地不动、 }}if(check(x+1,y)==1){//角色往右移动,箱子不动}同理等于2的时候,角色原地不动。。。 这只是简单的做了判断,具体的实现看你自己了,可以把人和箱子分开判断。。总之把思路分析清楚就OK
java推箱子游戏属性
四川师范大学成都学院专科毕业设计 I 基于JAVA的推箱子游戏 前言 在这个充满竞争的社会里,随着生活节奏的不断加快,人们的生活水平越来越繁忙,因此,越来越多人感到无比的烦躁与巨大的压力,这些压力也带给人们诸多烦恼。所以如何解除现代人的生活压力,释放心中苦闷已经成为现代人的共同心愿。而本次的这个基于JAVA的推箱子小游戏正是使用JAVA语言并且结合于EditPlus编译器,为大家开发了一款适合的、休闲娱乐的游戏,在娱乐的同时也给忙碌的上班族们开拓了另一个思考问题的空间。 基于JAVA的推箱子小游戏主要分为初始化模块,画图模块,移动小人模块,移动箱子模块以及功能控制模块。玩家是通过控制小人的移动来推动箱子,需要避过障碍物与死角才能将其推放到指定位置从而达到过关的目的。每关的难易程度各异,不仅适合人们休闲娱乐,还有助于开发智力,提高人们思考问题能力与想象能力,改善思考方式,拓展思维四川师范大学成都学院专科毕业设计 2 1.可行性研究 1.1设计目的综合运用在校期间所学到的理论知识和技能,并且结合课外参考资料,设计开发基于JAVA的推箱子小游戏,让自己能够熟悉并熟练应用系统的开发过程,培养独立思考能力,检验学习成果和实际动手能力,以及提高工程实践能力,为今后的工作打下坚实的基础。 1.2可行性研究前提 基本需求:系统开发的总体任务是实现游戏的可操作性、美观性、及时性。开发过程遵循软件工程规范,可采用结构化或面向对象分析设计方法。主要实现windows的GUI程序开发,对游戏中的图形图像进行键盘控制。玩家可以通过控制上下左右键来对游戏进行操作。 主要开发目标:采用结构化设计方法,开发出一个操作简单、界面简洁美观、适合休闲娱乐的小游戏,实现Windows的GUI程序开发,并通过此次软件开发过程全面提高自身的综合素质。 条件假定和限制:由于对编程语言的学习以及理解还不是很到位,因此本小游戏可能会存在某些问题以及不足之处。如果该软件要提高版本,本软件则需要根据玩家的要求进行进一步的修改。 可行性研究所采用的方法和步骤:通过研究分析推箱子小游戏所需要的功能以及实现的方法、确定主体结构。利用所学到的知识,以最简洁、最容易的办法,边开发边测试边修改,实现一个初级游戏软件。 评价尺度:由于本软件是一个初级产品,对其要求不是太苛刻,所以能够达到推箱子小游戏的一般功能即可。 1.3可行性分析 管理可行性: 该游戏软件的目的是为了提高自身素质以及检查所学习JAVA的效果,运用JAVA语言编写后在EditPlus编译器中运行简单明了,所有功能均根据基本需求所做,便于管理,所以在这方面是可以实现的。 经济可行性:由于本游戏的主要背景是毕业课程设计,不注重直接的经济效益和其后的发展方向,关键注重于自身编写程序的水平以及其能力的提高,对自身的经济要求四川师范大学成都学院专科毕业设计 3 也不高,只要有一台能运行JAVA软件和EditPlus编译器的电脑即可,所以可以不用考虑经济方面的相关问题。 技术可行性:对于本游戏,可以使用如VB,Java,Delphi等相关的编程语言,但是考虑到编写程序的难易程度以及对编译语言的了解程度,本游戏选择JAVA程序语言作为编程语言。需要对变量定义、变量初始化、界面初始化、游戏初始化等,然后就可以进入游戏,处理游戏过程中的各种操作。 社会可行性:本游戏的开发是作为毕业课程设计的,用来巩固先前所学的知识,是以个人为单位的,可供个人或他人平常娱乐解压所用,无须考虑有可能造成的社会影响,因此可以不用考虑到法律、版权等的社会因素,所以在这方面也是完全可行的。 1.4结论意见 综上所述,本游戏软件的技术基本成熟。经分析管理可行性、经济可行性、技术可行性和社会可行性,在这些方面上均无重大问题,因此能够达到此次设计所预期的目的,所以可开始着手编写本次小游戏。2.需求分析 2.1引言 对软件需求的完全理解,对于软件开发工作的成功与否是至关重要的,需求说明的任务是发现、规范的过程,这有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,有助于采用工程方法开发软件,提高软件的质量,还有利于开发人员、维护人员、管理人员之间的交流以及协作,并且可以作为工作成果的原始依据;再者,亦可在向潜在用户传递软件功能、性能需求,使其能够判断该软件是否与自己的需求相符合。 2.2游戏需求 玩家是通过对小人的移动操作来控制推动箱子的,并且玩家需要避过障碍物以及死角,才能将其推放到指定位置从而达到过关的目的。如果玩家将箱子推入死角导致箱子无法移动或不能移动到指定位置则闯关失败,可以通过悔步或重新开始等操作来重新挑战本关。 游戏功能需求如下所示: 游戏界面需求:简洁美观的用户界面,可以带给用户自然清晰的画面。四川师范大学成都学院专科毕业设计 4 游戏内容需求:良好的小人与箱子设计,可以给玩家带来更真实的感觉。小人需要前、后、左、右四张图片,移动中的箱子与终点上的箱子要所有区别,因此需要两不同的图片以示区别。 键盘处理事件:控制小人与箱子的移动,可通过键盘方向键(上、下、左、右键)对小人进行上、下、左、右的移动,并且能够推动箱子。 显示需求:当所有箱子都到达指定位置后即可过关,若进入死角则无法过关,需要进行悔步或重新开始的操作。可以由玩家喜欢选择关卡进行游戏。 2.3软硬件需求硬件环境需求: CPU:PentiumIII 600以上; 内存要求:600MB以上; 内存剩余资源:128MB以上;软件环境: JDK 1.5及其以上的版本。 2.4接口控制 本小游戏需要通过键盘进行操作,在Windows的操作系统下,利用键盘的上、下、左、右键控制小人的行动来推动箱子,要使用键盘的接口事件。 2.5方案论证 学校开设的关于学习编程语言的课程有C++语言、Java程序语言等,皆可用于编写推箱子小游戏的程序。 2.5.1.C++语言的优点 C++语言是对C语言的扩充,扩充的绝大部分来自著名语言中的最佳特性:从SIMULA 67中吸取了类,从ALGOL 68中吸取了运算符一名多用、引用和在分程序中任何地方说明变量,综合了Ada的类属和Clu的模块特点,从BCPL中吸取异常处理,从BCPL中吸取了用//表示注释。 C++语言保持了C语言的紧凑、灵活、高效和易移植强的优点,它对数据抽象的支持主要在于类概念和机制,对面向对象风范的支持主要通过虚拟函数。C++语言既有数据抽象和面向对象能力,语言运行性能高多,加上C语言的普及,而从C语言至C++语
java推箱子小游戏游戏界面设计思路技术路线
写箱子的java 的been
写小人的java been
设置画板,第一关的map(包括过关时箱子的位置,也可以写成been单元)
画出小人和箱子的初始位置
用键盘中的点击事件(上下左右)控制画板中的两个been的xy轴位置的增减,事项箱子的移动。
移动的同时写好判定条,如是否满足过关条件,是否碰壁等
Java推箱子怎么写啊
这是我之前写的一篇java实现推箱子算法的文章,简单的给你看一下:
《推箱子游戏》是一款益智游戏,游戏目标是搬运工自己来找出到某个位置的最短路径,然后自己走过去。
地图是这个游戏中非常重要的一部分,关于地图的存储,因为有一部分元素是可以重叠放置的,所以用了一个类似二进制的存储方式,就是4种物件分别有是否存在状态,使得用一个数字可以表示多个物件。
1、是否存在目的地
2、是否存在箱子
3、是否存在人
4、是否存在墙壁
这样就解决了地图存储问题。使用short就存下了。
一、在不移动箱子的情况下其实无论人在哪里对于map来说是没有影响的,所以填充可移动区域可以让需要存储地图的数量有一个大的下降。例如之前那副地图:
8888888
8103018
8002008
8320238
8012108
8403008
8888888
经过变换之后就成了:
8888888
8103018
8002008
8320238
8452108
8443008
8888888
这样就把存储量缩小了四分之三。至于怎样填充,相信对图论有一点了解的都可以随便想出方案,我这里用的是BFS。
话不多说,实现代码如下:
二、关于箱子的移动方式,直接用整幅地图的BFS搜索会比较靠谱。因为可以确定箱子的位置和在不移动箱子情况下人能到的位置,所以箱子可移动的位置也就能确定了,再加上之前存储的所有箱子的位置,这样就能计算出箱子每动作一次地图能更新的情况,一次BFS就是每个箱子往不同可移动位置进行一次移动。
三、结束搜索分为三种情况:
所有目的地被填充完毕-------计算完成退出程序。
有箱子被推到角落并且不是在目的地--------说明不是正确的路线,搜索不再往下走。
当前地图在以前已经被达成过--------说明是重复路线,搜索不再往下走。
四、关于地图的存储,用的是hashSet,并重写了equals和hashCode的实现,用来自动判断地图是否重复。(以此保证不重复)
最后完成地图显示问题,每个节点存储自己父亲节点的地址,当节点发现自己已经完成之后根据地址向上查找直到树顶,望采纳,谢谢。
java 游戏 推箱子
呵呵,我猜是课程设计的作业
人民币500
网上找下吧,这个比较多
kao,耍我啊,还MVC呢!
推箱子游戏 箱子之间的碰撞算法
***隐藏网址***出的什么错应该列出来,要不然凭猜测很难得出正确答案。还有个问题就是推箱子每次应该只有一个箱子在动,所以应该只要判断一下移动的箱子和其他所有箱子是否碰撞就行了,但是感觉你怎么每个箱子都与其他箱子判断是否碰撞了
谁有java设计推箱子游戏的代码,要简单点的代码
以前看过如鹏网的《这样学Java不枯燥》视频教程,通过开发飞机大战等经典小游戏来讲解Java的知识点,挺有意思的
本文相关文章:
推箱子java课程设计(java推箱子小游戏游戏界面设计思路技术路线)
2024年8月14日 10:40
java算法有哪些(数据结构 java开发中常用的排序算法有哪些)
2024年8月9日 00:25
java经典算法100例(JAVA的经典算法题目:计算兔子 该怎样理解它的思路!)
2024年8月4日 20:05
php aes加密(如何通过PHP 进行AES256加密算法)
2024年7月25日 09:55
八大排序算法java实现(用Java实现几种常见的排序算法)
2024年7月24日 01:26
opencv人脸识别算法(opencv实现人脸识别有多少种算法)
2024年7月16日 10:57
javascript除法运算(JS算法-设计一个除法,随即两个数相除,要求计算出的结果没有余数 怎么写)
2024年7月10日 05:40
java面试算法题(本人目前在找java开发工作,每次收到面试邀请,去面试都要做笔试题,笔试是我的通病,算法不会)
2024年7月2日 10:15
什么是算法?数据结构与算法分析,c,c++,java版 之间的区别是什么
2024年7月1日 05:15
进制转换工具类(急,急急,跪求java十六进制转换成二进制(要自己写算法),再把得到的二进制数取反后,在转换成十六进制)
2024年6月30日 22:51
更多文章:
适合教育培训机构的名字 培训班有诗意的名字?朗朗上口的艺术培训班名字有哪些
2024年7月10日 07:45
vb语言代码大全private(这个VB代码表示什么 Private Sub Command1_Click( ) Dim a,)
2024年7月12日 10:07
matlab画图设置图片大小(Matlab怎么调整图片的大小,使它成为特定的长宽)
2024年7月22日 01:19
linux基本命令tail(Linux下tail命令的使用方法)
2024年7月5日 05:49
pip下载官网(新手求助,mac下终端里无法运行ipython,已用pip安装,请问怎么解决)
2024年7月4日 08:27
forward和future(forward price 与 futures price 的区别)
2024年4月27日 01:35
checkbox使用方法(vb中的checkbox如何使用)
2024年6月6日 07:16
儿童编程游戏推荐(想给孩子学编程,机器人和scratch哪个好)
2024年7月13日 16:30
linux命令软件测试(软件测试人员在工作中如何运用Linux)
2024年6月23日 07:49
打码网站免费源码(我想办个网站(做打码代理),那么做这样一个网站需要买个com国际顶级域名,空间多少M合适还需要什么)
2024年5月5日 12:55
matlab怎么用cftool拟合曲线(【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool)
2024年7月21日 07:18