摘要
本次研究是做针对拼图游戏中所要实现的功能进行详细的计划、设计、分析、制作,研究完成后实现了拼图可以随机打乱图片、三级难度设置、统计移动次数、预览原图、还原检测以及展示排行榜数据等的功能。
本文介绍了Java语言的基本原理、Java反射、事件处理、图形界面、多线程编程等方面的知识。
设计此游戏的目的是为了锻炼人们的逻辑性,在游玩的图中培养玩家的耐心以及专注力,学习推理思考能力,以至于在日常生活中,面对一件事物,有自己的想法和独特的逻辑理念。
关键词:拼图;游戏开发;事件处理;Swing
一.绪论
日常生活中常见的拼图图片游戏大多是以九宫格的形式呈现,玩家可以通过点击鼠标或者按键盘方向键来恢复杂乱的图片,图片正常情况下表明游戏取得成功。Java编程语言是当前最流行编程语言之一。从JDK 1.2开始,java.swing和java.awt包为开发为其提供了多用途且作用非常强大的图形界面设计设计方案,使得他们可以用少量代码设计具备非常强大的页面功效的游戏。
文中在Java Swing的前提下,根据使用Java所提供的各种各样技术性,如图形界面设计、线程同步及事情监听技术性,描写了该游戏。该游戏具备拼图图片原照浏览、任意大转变图片、三级难度系数设计方案、计步统计分析、还原检验,及其能与众多游戏玩家交流的排名作用。
1.选题背景及意义
Java语言在目前的众多软件开发语言中得到了非常普及的应用,且它是一门面向对象的基础的编程语言,并且它在整合C++语言特点的这个方面,突出的效果非常有效,去掉了对于新手来说,非常不容易理解的指针概念,还确保了自身语言拥有其他语言无法相比的,更强的编辑特色,从各种方面,更容易地突出了面向对象的理论特色,从某些角度上来说,可以用更少的力气去实现更多的事情,对计算机软件开发的可持续发展性,有着不可磨灭的贡献。
Java语言拥有着更为严谨的语法、与平台无关、安全性和健壮性良好等特点,同时也是JavaWeb开发的前导课程。
在目前生活中,人们使用Java语言,更多地是体现在用它制作动态网页,因为其相对于其他语言而言,更通俗易懂,使用web服务器来进行脚本的编写。他在编程技术方面中,具有非常高的安全性,而且跨平台的功能也有很多体现。
在人们通过学习,通过深入了解Java语言程序的设计和方法之后,才充分体会Java语言在程序设计方面的强大功能和强大之处,了解用Java语言开发项目的一般过程,培养运用Java语言解决实际问题的工作能力。熟练掌握Java和相关数据库应用软件。
2.国内外研究现状
近些年,伴随着手机上游戏领域的崛起和爆发式发展趋势,世界各国手机上类游戏所使用的开发引擎便是文中所述的开发专用工具,开发手机游戏全过程中常用的各种各样库都出现了在这其中,是游戏情景页面所必须的如今发售的游戏中,比如宝开游戏企业的《植物大战僵尸》和《捕鱼达人》《愤怒的小鸟》等,在游戏引擎开发层面用了Cocos2d-x。因为在游戏页面的处理方式、运作层面展现出的游戏逻辑功能十分强大,标准库还包含了各种各样类型。伴随着手机上的兴起,手机上游戏的兴起水平远高于计算机游戏,并且由于其简单实用,发生爆炸水平愈来愈高,各种手机游戏也层出不穷,用以游戏开发出来的周期时间也时间越来越短。因而,手机上游戏开发这个行业需要一个非常稳定且高效率的游戏引擎做为开发专用工具,而Cocos2d-x更好地填补了这一差别,在游戏开发中的重要性愈来愈高。
稍早,海外许多手机上游戏引擎开发者开始了游戏引擎的开发与科学研究。她们十分重视游戏引擎。并且他们将这个游戏引擎比成人体一部分,觉得比较好的可谓是人的大脑,是车辆的引擎系统软件,传出命令的作用是这一引擎,他们能够在同一时间、同一地址有条不紊的工作中。游戏引擎游戏引擎作用是管理程序并导出相对应的输出,再根据相对应的输出进行一定的意见反馈。
从游戏背景、动画特效与他的系统软件来说,游戏引擎彰显了很重要的作用,通过日益发展趋势,它已经成为一个包括了很多游戏作用的总体。
NilsNilsson表明,查验矛盾关联才算是全面的关键核心一部分,其主责是判断游戏中游戏人物角色是不是出现了矛盾。当人物角色中间相撞实际效果时,该方法会即时查验撞击的位置和内在联系功效。引擎向初始实体模型加上光与影和阴影效果,并且在屏幕显示全部实时分析。除此之外,游戏引擎的另一个基本功能是采用电脑鼠标等方法进行数据交换并和有关外部设备开展通讯。
场景下的光和颜色环境在于光和黑影。MichaelA明确提出,光与影游戏是一种色彩配置独特、引擎掌控的游戏,可以借助不同类型的软件测试技术完成。出色的游戏一定便以充足光与影的吸引住玩家的注意力,但光与色背景让玩家看见了五颜六色的界面,使之视觉效果更加立体、丰富多彩。
最后就是动漫,游戏动漫系统软件分两种。一种是动漫,它使用相近骨骸的总体结构来挪动物件,另一种是最常见的基于模型的变型。这几种动漫引擎都能够使物件按照一定的规律性挪动。比如,弹跳时,重量取决于弹跳的高度和下降速度,而车子走动路线由操作系统确定。
国内外的科学研究老早就开始了游戏引擎的探索,所以一些知名游戏企业往往在国际范围内红起来,便是因为这种要素,中国也开始高度重视独立开发游戏引擎。
不同种类的游戏AI各司其职,如追逐闪亮等锻炼方式,如神经网络技术,如进化算法等。
从游戏层面考虑,较好的游戏体现为在运行中无法预测和掌握,应当激起玩家的检索兴趣爱好,在搜索中获得满足。比如,在即时发展战略游戏中,相同的确定能够很容易地让玩家把握真实信息内容。假如决策规则是玩家控制,游戏就没有什么挑战趣味性。另一方面,假如游戏方式从普通模式的特点成了群体攻击的特点,游戏AI也要立刻改变角色和对策。
例如玩纸牌游戏时,AI引擎的处理方式相对而言有点儿过度舞弊,能够非常容易推断出另一方如今手上的牌,能够降低游戏的挑战性。因为他实质上破坏市场竞争里的公平公正,因此可以归为“人工智能技术”,最少Kelly Manley在这一方面相信。在个人行为与情感的事实层面,它会所采取的行为应当尽量贴近人们。
AI的通过在方法与技术和游戏层面,主要作用是让玩家更开心,但太困难的每日任务让她们丧失信心,无法执行赛事,太简单的任务造成不上他的兴趣爱好,全部游戏越来越太无聊。因此,既满足了智能化,也满足了玩家的需要。依据玩家个人能力,调节游戏难度系数,使之更为通俗化,面对更大范围群体。该领域寻找的基本原理是运用简单高效的专业技术解决问题。
现阶段,在必须通过挪动开展的所有游戏中,途径优化算法都是不可缺少的人物角色。在这样一个游戏中,大家也运用了用这种方法。在这里明确提出一种在游戏中以人物角色移动来达到该优化算法的新方法。较为详细的算法主要表现在很多方面,主要包含实际效果信息真实性。在游戏中,玩家所实际操作的名人对应的姿势在游戏中务必表现的十分真正。工作效率高:游戏中人物动作的判断推理和信息的响应速度务必非常快。稳定性:因为逻辑推理的多元性,游戏中有可能出现很多不同种类的逻辑性状况。那样,出色的游戏途径优化算法必须对各种各样逻辑性问题进行错误行为,以确保分辨结论。因而,结合实际,应该根据实际需求来选择,制订优先选择目标,优先选择进行更重要作用。
二.相关技术概述
拟使用Java来完成此项目的制作。在这个编程语言层出不穷的年代,Java脱颖而出,而在JDK1.2之后的Swing和awt这两个包中,则为大家提供了非常全面,非常强大的图形界面设计功能,工作人员可以省时省力,完成预期的工作。
20世际90时代,海外技术工程师人群必须设计方案微型机语言,其作用主要表现在有线数字电视电视机顶盒这种设备中,这种产品体型小,内存空间比较有限,语言务必小而精致因为不同类型的生产商会选择不同CPUCpu,因而不该将这一语言与特定系统架构结合起来,这一点很重要。这一项目被称之为“Green”。
因而,开发精英团队务必开发解决三种情况的语言,达到这一系列规定,可以形成短而紧凑的正中间转移编码。
可是,Sun公司的人有UNIX的应用背景。因而,开发出来的语言以C而非Lisp、Smalltalk和Pascal为主导。可是,如同Gosling接受采访时所讲的“终究语言是达到目标的一种手段,而非总体目标自身”。Gosling将这种语言称之为“Oak”。(之所以这样取名,可能就是因为他上班的地方外边种着橡树林。但后来才发现这名字早已申请了电子计算机语言,就更名为Java。
90时代后期,Green项目上线了名叫“*7”的商品。可是Sun不太感冒,但是为了把他们的产品走向市场,Green务必寻找方式。可是,都还没标准化的日用品电。因而,Green项目工作组对设计有线数字电视盒的项目展开了招投标。虽然能给予视频点播系统等泛素化电缆线服务项目,可是他们未能拿到这个合同书(Netscape公司之后对Java的成功也起到了很大的作用)。
Green项目(这时改名为——“First Person企业”)在1993年的一年和1994年的上半年度都会要求消费者选购技术性。可是,一个人都没找到。(这个人是Patrick Naughton项目团队创始人之一,都是进行绝大多数网络营销得人,宣称为了能市场销售这项技术航行了300,000公里。1994年First Person企业破产了。
在Sun企业这么做的与此同时,大数据的全球网络还在不断增加。互联网技术的关键在于电脑浏览器把网页页面变为显示屏。1994年大部分人都使用Mosaic。这是一个非商业的网页浏览器,1993年来源于伊利诺伊大学的超级计算。(Mosaic的一部分是通过Marc Andreessen所写的。那时候,自己作为参与半工半读项目的本科毕业生,编写了这个app。一小时薪水仅有6.85美金。他后来成为Netscape公司的创始人之一和技术主管,算得上是大福大贵)。
接受SunWorld采访的时候,Gosling说,1994年中后期,Java语言的开发者说:“大家可以做非常酷的电脑浏览器。在手机客户端/云服务器主流框架中,电脑浏览器恰好需要大家完成工作中。毕竟在工作平台环境里不是很必须架构设计保持中立、即时、靠谱、安全难题,因此我们确定开发电脑浏览器。”
为了能展现Java的强大性能,HotJava用了Java。但是真正浏览器是通过帕特里克诺顿和乔纳森派恩开发出来的,在之后的发展过程中变成了HotJava隔离开关。使该技术性到现在才行持续升温,来自1995年5月23日的Sun大会展现。
Java的第一个版本是Sun于1996年初发布的。通过多方用后,得出的结论是此版本的Java不能用于具体的APP应用软件开发。的确,可以用Java 1.0通过在画板上任意跳舞的神经质文字微信小程序,但是不给予扫描功能。坦率地说,Java 1.0确实没为金子时代的到来打下基础。以后的Java 1.1填补了其很多显著的不足,大大改善了反射面水平,在GUI编程中增强了一个新的事故处理实体模型。可是,它还是有很大的局限。
1998年JavaOne大会的关键新闻是发布Java版本1.2。此版本应用繁杂、可伸缩的工具箱更换原始的根据玩具GUI和图型工具箱。1998年12月Java 1.2开售仅3天内,Sun公司市场部把它改名为更有竞争力的“Java 2专业版手机软件开分包1.2版”。
除开“专业版”以外,Sun公司已发布了几个版本。一个是用以电子产品嵌入式设备的“微版”和“商业版”。我们主要应用Java SE。
专业版1.3和1.4逐渐优化了第一个Java2版本,带来了不断扩展的要求标准库并提升了性能。自然,不正确又被调整了。在这段时间,对Java微信小程序和手机客户端APP程序的蹭热点渐渐消失,但Java已经成为网络服务器APP应用软件端优选服务平台。
5.0版有自1.1版至今第一个明显改善Java语言的版本。该版本本来设为1.5版,2004年JavaOne大会后,版本号立即上升至5.0。经过多年科学研究。该版本加了通用性种类“geneic type,基本上等同于C的模版”,这增添了不用对vm虚拟机开展变更的难点。除此之外,受C#的启迪,还添加了一些有价值的语言特性,比如for each循环系统、自动打包和注解。
版本6(无后缀名.0)于2006年底发布。一样,该版本未进行语言等方面的变更,反而是展开了别的性能改善,并增强了标准库。
因为对商业服务机器的数据信息依存度远远超过专用服务器,Sun最后公司被收购,正中间出现比较长的空档期。到2011年,Oracle发布了Java的版本Java7,在其中仅有简单改善。
2014年,Java 8总算发布,近20年里这一版本发生了很大的变化。Java在一点上十分出色,他能够计算并很容易地实现,步调一致,那便是“函数式”。
Java 9的重要特性要上溯到2008年。那时候,Java平台上的首席工程师Mark Reinhold开始专注于溶解这一非常大的Java服务平台。因而,控制模块是提供特殊功能性的自包含的代码模块。设计方案和实现适宜Java平台上的模块系统花掉了11年,但它是否同样适用于Java APP应用软件和标准库还有待观察。Java 9于2017年发布,带来了别的十分有吸引力的特性。
从2018年开始,Java版本将每六个月发布一次,以支持特色功能的快速部署。一部分版本设计成长期支持的版本,更持久,提议学生们免费下载。表明在网站上,比如Java 11。。
三.拼图游戏的设计
1.整体规划
一款游戏地设计,首先需要考虑其整体结构,并且让人能够一样就看懂,不能太过复杂,花哨,再加上各种功能,让它更容易让人看到,更容易开发。
1.游戏初始化
在初始化阶段,这个界面会为玩家展示出供原图展示的区域,以及用来游戏的操作区,和一些必要的按钮。
2.游戏难度设置
玩家可以根据个人的喜好来设置游戏的难度,本游戏一共为玩家一共了三种游戏难度,分别是:简单、普通、困难三个模式,并且按照玩家的难度选择将图片分割成大小一致的等份图片。
3.图片乱序
当玩家按下“开始游戏”按钮后,程序会得到相应的指令并将所有图片重新打乱。在被随机打乱之后,还要确保能恢复成原图。
4.步数统计
在游戏界面的上方,会显示出整个游戏的步数,玩家通过点击鼠标拖拽滑块,每走完一步,总步数就会增加一步。
5.排行榜
比赛开始前,玩家可以看到以往游戏的记录,并且在新的一轮游戏结束时,系统会根据目前的步数和时间重新计算排名。
6.退出游戏
点击结束游戏按钮和窗口上的关闭按钮都可以结束游戏。
2.游戏界面
此游戏的界面设计是通过Java.swing的相关部件来完成,见图3.1。
图3.1游戏界面图
从图中可以看出,游戏界面的设计主要分为左右两部分,左侧为玩家操作区,其中放置的主要按钮由返回、选择、开始或结束游戏组成。右侧为预览区,该区域将根据玩家的选择显示相对应的原图提供玩家参考。
本游戏是一款益智类游戏,游戏规则类似经典游戏三国华容道,设计了三种不同的难度,实现了用户想根据自己的实力来选择不同的难度的想法。运用鼠标监听事件,根据鼠标在不同的位置点击来反馈不同的结果,可以让玩家更好的理解游戏,更容易上手操作。从图中可以看出,游戏的整体界面还算简洁,包含了主界面、难度、排行榜、开始和结束五个界面。下面,我会对每一个界面进行详细的介绍。
主菜单界面:包含有一个新的游戏按键,一个设置案件和一个退出返回按键。与所有游戏相同,这个游戏的起始页是一个总的主菜单。在界面的中央,有一个新的游戏按键,顾名思义,玩家可以通过点击这个按钮,进入游戏的主页。游戏难度默认为上一次使用过后的默认设置。再往下便是设置按钮,里面包含了难度,音效,记录,返回按钮。难度按钮:一般游戏,玩家可以根据自身能力选择所需的难度,同样,我们为玩家设定了难度选择方便玩家更快地上手。为了能使游戏大众化,我们设置了不同的游戏难度,使得游戏的可玩性更高,也更有挑战性。分别为简单、普通和困难。但对于绝大多数人来说,一般玩到普通难度地时候,可能就会出现乏力,相对而言难度更大。当然对于5*5的难度系数而言,人工智能的运算方式还是具有一定的参考性。音效:在玩家打开游戏的时候,音乐会随着游戏的打开而自动播放,也可以选择关闭,避免因游戏声音过大从而影响玩家的游戏体验。记录按钮:这个里面存放的主要是玩家对于三个难度下的游戏记录的保存,可以从里面看见玩家近期完成游戏所用的时间及其所用的步数的统计。返回按钮:返回上一级菜单。
操作界面:此界面为游戏的主要体现部分,玩家可以在该页面上进行游戏,来完成游戏的胜利。这个界面由两个部分组成,按钮区域和滑块区域。在游戏开始的时候,系统会提供三张图片供玩家选择,玩家可根据自己的喜好来选择喜欢的图片进行游戏。玩家在开始对局后,系统会根据选择的难度进行图片打乱,且保证打乱后可以复原。重新开始按钮为玩家提供了重新开局的机会,包含玩家想根据自己的喜好更换图片再开始游戏。在玩家操作区的旁边有一个预览区,玩家可以根据系统给出的原图进行复原,上面记录了玩家完成此局游戏所用的时间以及步数。玩家在将图片进行复原后,系统会弹出对话框,写有“恭喜成功”的字样,且询问是否进行下局游戏。
四.拼图游戏的实现
1.游戏初始化
主要是呈现出一个游戏界面,并且在玩家选择好图片之后,按照选择的难度,图片的大小,宽度高度,使用getSubimage()的方法来将图片划分为9等份,该方法源自Bufferedlmage类中,利用JButton中的Cell类来保存滑块。图4.1、图4.2所示为实现的关键代码部分。
图4.1关键代码
图4.2关键代码
其中bottom_1为操作区即拼图区设置,bottom_2为预览区设置,background为背景色,width和hight为该区域的宽度和高度。
2.游戏难度设置
游戏一共设置了三个难度,分别为:简单、普通、困难。并为其添加监听时间,当玩家选择好想玩的难度时,系统会根据新的难度重新划分游戏界面并对图片进行分割,如图4.3、图4.4、图4.5所示。
图4.3关键代码
图4.4关键代码
图4.5关键代码
3.开始游戏
在保证可以在有效的时间内,可以将拼图恢复到原来状态的前提下进行图片打乱。初始化算法是一种非常重要的方法,可以在各种情况下都可以对图片进行重新打乱,使玩家可以开始一场新游戏,而不是在之前的基础上继续游戏。如果要使用这种算法的话,前提必须是所有的图片已经被打乱且呈现在了界面上,在初始化的时候,是基于滑块目前状态来定义的,这样做是为了保证每一次新的对局,滑块的打乱是有序的,并且能够复原,避免在游戏中出现不可恢复的情况。
游戏的开始阶段,图片是原始状态,通过监听开始按钮,下达命令后,将图片所对应的滑块使用随机打乱的方式进行打乱,并且是在可以还原的情况下,因为它是随机的,所以只要耐心去求解,通过足够的时间,就可以把它恢复到原始状态。这种算法,可以保证每局游戏通过乱序代码打乱之后,肯定能复原,而不会出现玩家进行游戏很长一段时间后,却不能完成游戏的情况。
使用这种方法可以保证玩家的每一局游戏初始打乱状态都不一样,从而增加可游玩性。其关键代码如图4.6、图4.7。
图4.6关键代码
图4.7关键代码
4.滑块移动算法设计
玩家可以通过鼠标将滑块向上下左右四个方向移动,当玩家使用鼠标点击某一个滑块后,算法会根据点击位置的滑块与四周滑块的垂直方向作对比,判断被点击滑块是不是可以横向或者纵向移动,如果与周围的滑块做完比较,发现空白滑块在其周围,那么就可以跟空白滑块互相调换位置;如果空白滑块并不在其周围,则不做出改变。
控制滑块能够移动的算法在整个游戏中起到了至关重要的作用。它可以自动识别滑块的移动方向,滑块移动的方向是否合理,其周围是否存在空白滑块。
那么滑块移动算法的基本判断过程,通俗来讲就是在游戏初期,算法自动将滑块的位置记录并保存,判断玩家点击的滑块是不是在已保存的坐标里面,如果点击的滑块存在坐标中,那么就判断被点击滑块的周围是不是可以移动,也就是周围是不是存在有一个空白的滑块。关键代码如下图4.8、图4.9所示。
图4.8关键代码
图4.9关键代码
5.步数统计
在游戏界面中玩家可以看到,上面显示有时间和步数统计,用来保存玩家游戏所使用的时间和步数,当点击滑块并且判定移动后,变量的值加1,如图4.10所示。
图4.10关键代码
6.还原检测
所说的还原检测,就如前文一样,在游戏开始的时候,算法将每个图片说所对应的滑块位置做标记,并且随机打乱。在玩家点击鼠标移动滑块的过程中,每移动一次,系统会对滑块的当前位置状态与初始状态做对比,如果两个位置状态相同的话,则游戏成功,反之则不会提示,继续游戏。如图4.11所示。
图4.11关键代码
7.音效管理模块设计
对于一整个游戏而言,背景音乐在其中的作用无疑是非常重要的,这个因素能很大的提高玩家对于游戏的喜爱性,并且还不能过于嘈杂,反之起到的作用则无足轻重。在玩家打开游戏的同时,背景音乐会随之响起,在游戏途中增添更多的趣味性和可玩性。如图4.12、图4.13、图4.14所示。
图4.12关键代码
图4.13关键代码
图4.14关键代码
8.AI复原算法设计
随着人工智能的普及,AI的作用显得至关重要。它已经渗入到人们生活的各个方面,包括一些大型研究上,比如航天领域、军事领域、教育领域,甚至普通人的身边也出现了它的身影。它的作用也不言而喻,可以使人们的工作效率发生翻天覆地的变化,而把它添加进一个游戏中的时候,无疑是增加了游戏的多面性和可玩性,往往不同的开端会触发不同的结局,可玩性更高。
而在本游戏中的体现,则是我们之前设定好的还原算法。它让整个游戏变得很加灵活多变,使玩家更容易上手。下面,我们就对人工智能算法这个方面做一个简单的阐述。
在本文中提出的AI算法设计,就是简单的对比算法,将初始状态的滑块坐标与移动后的滑块坐标对比一下,一致的话则游戏完成,反之则一直持续此状态,直至完全一致,结束本局游戏。
在此方法中不难看出,它能够按照完成游戏时滑块的位置推算出来空白滑块在一整局游戏中的运动轨迹,此中还提到了滑块的状态判断,与之相互呼应,在下文也将提到,两者之间的关系是不可分割的。
其中基于宽度的优先算法,可以通过计算机强大的运算能力,来辅助它完成算法的运算,从而完成想要达到的目的。但是,如果对于更加复杂的游戏来言,它的作用就没有那么明显了,毕竟已经超出了它自身的处理范围。所以我们需要用到一种新的算法来弥补这一点空缺,它就是A*寻路法。
那么基于A*路径的智能算法,在我们之前就提到过,宽度优先的算法有很大一个缺点,就是它自身的存储空间并不大,会直接影响到算法的运行。而对于A*来说它会在每一次的指导下进行正确的评估,效率就更高,可以减少所需的时间,但是运算所需的存储相对来说会比宽度算法要大一点。这种算法的好处就是相对其他算法而言,不会过于盲目的去实现评估,从而减少了过程中的冗余,大大提高效率。
A*算法在算法大于15次的情况下,运算效率远远比宽度算法快很多,而且其优点是非常明显的。但如果将A*用于拼图游戏时,则会导致运算速度大打折扣,因为过程中产生了许多的无用功,导致它的内存被大量浪费,从而使它的运算速度下降,得到的数值也不够精准。所以移动次数越多,它的性能也会相对降低。
1985年,Korf提出的名称为Iterative Deepening A*算法,即基于IDA*的算法,可以有效地解决大型规模的问题。这就是我们下文提到的IDA*算法。
它是A*的改进版本,优点就是能够最大化的优化性能,从而提高我们在使用过程中的效率。在算法方面,两者相结合,弥补了A*在运算过程中内存被盲目占用,减少了过程中的冗余。该算法在运算过程中,会判断当前的运算知否超过了预期的内容,如果没有,则继续进行下一步的运算。因此,得到的结果一定是最好的。所以A*算法一般用于代价相对较小的运算,通常会采用Hash来提高系统的运行效率。
由于存在大量的无意义状态,A*算法要解决此问题,因为会占用太多的内存。而IDA*则很好的解决了这个问题,但是由于不会存储过程,所以它会反复的进行查找。在自动处理过程中,会选用适当的函数,以达到目的。
而对于IDA*的另外一种拓展——BIDPS*算法,对比IDA*来说,则显得更加平滑,在人工智能领域也得到了更为广泛的应用。
它还有另外一种称呼,叫做双向搜索,采用连续搜索的方法,将搜索范围划分成多个区域,很好的避免了重叠的问题。虽然比IDA*更快,但是它的计算量则相对来说要大得多。
五.系统测试
1.软件安装与环境配置
软件:IntelliJ IDEA 2020.1
环境配置如下图5.1和图5.2所示。
图5.1环境变量配置
图5.2 jdk主路径图
2.游戏运行难度调试
打开游戏后默认难度为3*3,如图5.3所示。
图5.3 3*3难度示意图
更改游戏难度为4*4,更换成功,如图5.4所示。
图5.4 4*4难度示意图
更改游戏难度为5*5,如图5.5所示。
图5.5 5*5难度示意图。
参考文献
[1]刘杨.基于iOS的Base64和3DES加密的研究和实现[J].计算机安全,2012,No.142(12):28~33.
[2]周雅,晏磊,赵虎.增强现实系统光照模型建立研究[J].中国图象图形学报,2004(08).
[3]王越.JAVA编程语言在计算机软件开发中的应用[J].电子技术与软件工程,2021(01):35.
[4]陈海鹏,申铉京,吕颖达,金玉善.基于LamberT光照模型的图像真伪盲鉴别算法[J].计算机研究与发展,2011,v.48(07):1237~1245.
[5]樊莉,孙继银,王勇.人工智能中的A~*算法应用及编程[J].微机发展,2003(05):33~35.
[6]曹文渊.JAVA语言在计算机软件开发中的应用[J].电子技术与软件工程,2019(02):53-54.
[7]杨宪泽.基于图搜索算法的探讨[J].西南民族学院学报(自然科学版),1998(02).
[8]黄智聪.JAVA编程语言在计算机软件开发中的应用研究[J].信息与电脑(理论版),2020,32(02):71-72.
[9]Karungaru S,Fukumi M,Akamatsu N.ldentifying scene ilumination using geneticalgorithms and nneural networks[J].Proceedings of the 9th Intermational Conference onNeural Information Processing,2002,3:881~885.
[10]P.E.Hart,N.J.Nilsson,B.Raphael.A fromal basis for the heuristic deter-mination of minimum cost paths in graphs.IEEE Trans[J].on Pattern Analysis and MachineIntelligence,2013,4(2):100~107.
[11]Kalyan Sunkavalli,Fabiano Romeiro.What do color changes reveal about anoutdoor scene[J].IEEE on Pattern Analysis and Machine Intelligence,2008,52(2):1~8.
[12]Marshall Tappen,William Freeman,Edward Adelson.Recovering intrinsic imagesfrom a single image.IEEE Trans[J].On Pattern Analysis and Machine Intelligence,2005,27(9):1459~1472.
[13]任灏榕.基于J2ME的JAVA手机游戏开发技巧[J].电子技术与软件工程,2020(02):46.
[14]陈海鹏,申铉京.基于Lambert光照模型的图像真伪盲鉴别算法[J].计算机研究与发展,2011,48(7):1237~1245.
[15]倪海顺.计算机软件开发的Java编程语言应用探讨[J].信息与电脑(理论版),2019(02):60-61.
[16]Hiroto Matsuoka,Akira Onozawa,Eiichi Hosoya.Environment mapping for object in the real world:A trial using ARToolKit[J].Proceedings of the First IEEE International Workshop on Augmented Reality Toolkit,2012,4(2)31~36.
[17]张永强.计算机软件JAVA编程特点及其技术分析[J].计算机产品与流通,2019(01):23.
[18]Marshalfrom a single image.IEEE Trans[J].on Pattern Analysis and Machine Intelligence,2005,27(9):1459~1472.
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/208417.html,