版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、九江学院信息科学与技术学院«Android»游戏设计期末大作业题目:五子棋游戏设计专业:软件技术班级:信B0931姓名:张空学号:20914160122同组人员:刘奇、钱峰指导老师:程宣设计时间:11年9月1日12年1月15日«Android»游戏设计期末大作业1绪论11 .五子棋手机游戏概述22 .开发环境与工具介绍33 .需求分析与总体设计44 .详细设计125 .人机智能算法分析156 .软件测试177 .结论188 .参考文献19绪论随着社会的发展,目前全球的手机用户数量已经超过了PC机的数量,而且手机的数量正在快速增长,其中智能手机所占的比例越
2、来越大,特别是随着3G技术发展时代的到来,移动互联网将二|是一个巨大的市场,许多国际大公司以及国内的大公司都在抢占智能手机领域的市场份额。这期间,出现的智能手机可谓五花八门,种类繁多,但是真正好用,受用户喜爱的智能手机并不多。当互联网巨头Google宣布依靠android系统进军手机操作系统领域之后,三年来Android一路高歌,快速的获得众多用户和厂商的认同。随着Android手机终端的逐渐热销,Android也引起众多手机应用程序开发商的关注,Android的出现带给了智能手机领域更多的机遇和挑战,由于Android基于Linux内核且具有开源、免费的特性,它迅速得到广大爱好者以及许多厂商
3、的支持,基于Android所开发的手机游戏拥有巨大潜力已成为行业共识1。3G的普及、手机显示性能的提高、手机屏幕的扩大和较高的分辨率,解决了传统手机行业的很多弊端,同时Android也采用了键盘形式的按键,可以完成更复杂的操作。Android虽然基于Java,但是其虚拟机是基于寄存器的(这与普,速度得到很大的提升,这为Android平台上开发游戏通的Java基于堆栈不同)提供了坚强的后盾2。随着移动开发技术的不断升级和终端设备成本的下降,近年来,手机在普通消费人群中得到了极大的普及。凭借其便于携带、沟通迅捷、功能多样、私密性强等独有优势,手机已经成为普通民众不可替代的随身工具。其益智、趣味和休
4、闲的特点迎合了消费者的娱乐需要,手机游戏的开发推广已经成为手机生产商和运营商重要的业务增长点,游戏软件产业价值不断提升。手机游戏是手机的一种高附加值操作软件,游戏编程是手机软件编程的重要组成,同时也持续推动手机软件技术升级进步。中华民族是一个有着几千年悠久历史和璀璨文化的国家,而棋类娱乐却早已突破了纯游戏的范畴而成为中国传统文化的一个分支。五子棋起源于中国古代的传统黑白棋种之一,现代五子棋日文称之为“连珠”,英译为Renju,英文称之为“GobanJ或“FIR”(FiveinaRow的缩写),中文亦有“连五子”“五子连”、“串珠”“五目”“五目碰”“五格”等多种称谓。五子棋的棋文化源渊流长,具
5、有东方的神秘和西方的直观,是中西文化的交流点,是古今哲理的结晶。现在人们压力日益增大,需要劳逸结合才能获得更高的工作效率,工作之余的娱乐对每一个人来说都是必不可少的。五子棋这种娱乐方式简单易学又具有深奥的技巧,非常富有趣味性和消遣性。在经过不断发展后,五子棋已经成为棋盘娱乐的一个重要的组成部分,它能够增强思维能力、开发智力,是人们休闲娱乐的不错选择。近来随着计算机和手机的快速发展,各种各样的游戏层出不穷,使得人们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。现在的五子棋游戏软件基本上可以分为两类:一类是网络五子棋游戏软件,另一类
6、是单机版五子棋游戏软件。很少有手机版的五子棋游戏软件。为了满足手机人群的需求,本文设计了这款手机版的五子棋游戏软件,可以供人们闲暇时间随时随地地进行娱乐,提高自己的五子棋水平,实用性强。本课题主要研究在android手机上开发一款集人机对战和人人大战两个游戏模式于一身的五子棋游戏。游戏界面部分凭借android平台提供的非常完美的控件和精美的布局框架设计出一个内容清楚、指示明白、屏二|幕美观和有亲切感的游戏界面。在人机对战中通过极大极小树原理、深度搜索方法、剪枝方法等理论来模拟一个运行效率快,具有一定智能的对手来同游戏玩家一较高下。人人对战部分主要是提供一个界面美观的平台来供游戏双方更好的切磋
7、棋艺。此外,本软件还必须具备如下基本功能:显示一个十五行十五列的五子棋棋盘。在棋盘上面对应位置通过触屏点击下子,棋盘上将在相应的位置上显示棋子,并且棋子在纵横交点上。可以自动判断游戏是否结束,判断胜负,是否黑方或者白方已经胜出,并且通过提示信息来提醒玩家。在游戏上方会有一个游戏信息,这个游戏信息是用来提示当前游戏状态和当前是黑白双方的哪一方下子,玩家可以根据这个提示来相应的下棋,而不会导致不清楚轮到哪一方下棋的情况出现。可以重新开始游戏,悔棋,认输和退出游戏界面的功能。要有帮助界面。1 .五子棋手机游戏概述1.1 五子棋简介五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种
8、之一。发展于日本,流行于欧美。现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang'“FIR"(FiveinaRow的缩写),亦有“连五子”“五子连”“串珠”“五目”“五目碰”“五格”等多种称谓。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。1.2 手机
9、游戏的优点庞大的潜在用户群现在全球超过十亿部移动电话正在被使用,并且这个数目还在逐渐增加。在除美国之外的每个发达国家,拥有手机的人数比拥有计算机的人数还要多。虽然这些手机只有小部分是支持Java游戏的手机,但是这个数目正在快速地提高并且在几年内Java手机将要成为行业标准。移动游戏潜在的市场比其它任何平台(比如Playstation和GameBoy)都要大。便携性GameBoy比其他任何控制台游戏卖出的多的一个原因就是其的便携性。与现在的游戏控制台或个人电脑相比,手机可能不是一个好的游戏设备,但是人们基本上是随时随地都把它们带在身边,在人们离开家或者想玩的时候,可以不受任何时间地点限制地玩自己
10、选择的游戏。支持网络因为移动电话是网络设备,所以可以实现多人游戏。1.3 五子棋术语黑方:执黑棋一方的简称。白方:执白棋一方的简称。胜局:有一方获胜的对局。和局:分不出胜负的对局。终局:对局结束。阳线:直线,棋盘上可见的横纵直线。交叉点:阳线垂直相交的点,简称“点”。阴线:斜线,由交叉点构成的与阳线成45。夹角的隐形斜线。落子:棋子直接落于棋盘的空白交叉点上。轮走方:即“行棋方”,有权利落子的黑方或白方。连:同色棋子在一条阳线或阴线上相邻成一排。长连:五枚以上同色棋子在一条阳线或阴线上相邻成一排。五连:只有五枚同色棋子在一条阳线或阴线上相邻成一排。成五:含有五枚同色棋子所形成的连,包括五连和长
11、连。四:一条阳线或阴线上连续相邻的5个点上只有四枚同色棋子的棋型。活四:有两个点可以成五的四。冲四:只有一个点可以成五的四。死四:不能成五的四。三:一条阳线或阴线上连续相邻的5个点上只有三枚同色棋子的棋型。活三:再走一着可以形成活四的三。连活三:连的活三(同色棋子在一条阳线或阴线上相邻成一排的活三)。简称“连三”。跳活三:中间隔有一个空点的活三。简称“跳三”。眠三:再走一着可以形成冲四的三。死三:不能成五的三。二:一条阳线或阴线上连续相邻的5个点上只有两枚同色棋子的棋型。活二:再走一着可以形成活三的二。连活二:连的活二(同色棋子在一条阳线或阴线上相邻成一排的活二)。简称“连二”。跳活二:中间隔
12、有一个空点的活二。简称“跳二”。大跳活二:中间隔有两个空点的活二。简称“大跳二”。眠二:再走一着可以形成眠三的二。死二:不能成五的二。三三:一子落下同时形成两个活三。也称“双三”。四四:一子落下同时形成两个冲四。也称“双四”。四三:一子落下同时形成一个冲四和一个活三。2 .开发环境与工具介绍2.1 开发环境运行环境2.1.1 开发环境ntel(R)Pentium(R)4CPU2.40GHz,1G内存,160G硬盘MicrosoftWindowsXPProfessionalServicePack3JDK1.60Eclipse3.52.1.2 运行环境Android手机操作系统2.2版本。2.2
13、工具介绍2.2.1 Android简介Android是基于Linux内核的操作系统,Google公司在2007年11月5日是公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(OpenHandsetAlliance)开发。Android系统具有开放性、应用程序无界限、应用程序是在平等的条件创建的、应用程序可以轻松地嵌入网络和应用程序可以并行运行等特点。Android的系统架构共分为4层,由高到低分别是应用层、应用框架层、系统运行库层和linux内核层。从技术角度而言,Android与iphone相似,采用Webkit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上
14、查收邮件、搜索网址和观看视频节目等。2.2.2 Java简介Java是Sun公司在1995年推出的新的编程语言,它是一种简单的、面向对象的、分布式的、解释的、安全的、可移植的、性能优异的多线程语言。3 .需求分析与总体设计3.1 需求分析手机屏幕尺寸分为物理尺寸和显示分辨率两个概念。物理尺寸是指屏幕的实际大小。大的屏幕同时,要配备高的分辨率,也就是在这个尺寸下可以显示多少个像素,显示的像素越多,可以表现的余地自然就越大。现在手机行业发展迅速,不同大小屏幕的手机迅速发展,鉴于不同手机屏幕尺寸不同,在设计游戏的时候必须满足:软件的界面简洁明了,操作简单容易。软件具有的人工智能算法原理要简单并且运行
15、要快速。游戏是需要快速反应的,手机处理器的频率直接要求需要使用简单实用的智能算法。在设计本游戏时考虑到用户需要的是一个操作简便界面简单的游戏软件。同时要提供人人大战和人机对战两个游戏模式。特别是人机部分,要考虑到此软件是在手机上运行,手机的很多性能都不如电脑,因此在人工智能算法的设计上应该在尽可能的缩短系统搜索时间的同时还要保证要有一定的智能水平,不然对玩家来说没有一定的挑战性,也就缺少了吸引力。此外,通过软件功能的分析,根据五子棋爱好者的需求,得出还有如下需求信息:(1)具有重新开始的功能;(2)具有认输功能;(3)具有悔棋功能;(4)具有提示轮到哪一方下棋的功能;(5)具有退出游戏的功能;
16、(6)具有判断胜负的功能。3.2 系统设计思想本次设计主要是设计一个能够在Android手机上运行的五子棋游戏。根据一般玩手机游戏的流程,玩家一般是先进入一个欢迎界面,进行选择操作后再进入游戏的主界面开始游戏。本游戏软件也将遵循该流程,玩家打开游戏软件后将先进入欢迎界面,选择游戏模式,然后进入游戏的主界面开始游戏。进入游戏的主界面后,系统将根据玩家所选的游戏模式给玩家设置对手玩家。游戏过程中,棋盘上方的提示信息会提示玩家轮到哪一方下子,玩家也可以进行悔棋、认输等操作。3.3 系统总体设计根据系统设计思想,得出系统总体设计模型为:3.4 系统功能模块及流程3.4.1 系统主要功能模块根据需求分析
17、和系统设计思想,可以将此手机五子棋游戏分为以下几个功能模块:游戏界面初始化模块:装载界面图片,画出棋盘,清空棋盘,清空游戏双方落子集合等等功能。【主循环控制模块:负责控制下棋顺序,当轮到某方下子时,负责将程序流程转到相应的模块中,主要担当一个调度者的角色。玩家落子模块:即用户在指定落子区域单击后,程序会计算该子的坐标,并且在相应位置画出相应的棋子。分析盘面得出最佳下子位置模块:是本次设计的核心部分,即人工智能模块。电脑落子模块:在分析出来的最优位置上画出相应的棋子。胜负判断模块:根据预先设定的规则,判断游戏胜负。悔棋功能模块:通过点击悔棋按钮可以进行悔棋。|要求重新开始功能模块:通过按下键盘上
18、的向下键即可3.4.2 系统主要流程欢迎界面帮助界面选择游戏模式游戏界面初始化人机对战游戏模式人人大战主循环控制主循环控制分析盘面得出最佳下子位置玩家落子玩家1玩家2手机落子否判断胜负某方胜利某方胜利否判断胜负重新开始某方退出某方退出结束图2系统主流程图|3.5 玩家视图与操作3.5.1 欢迎界面欢迎界面主要由游戏名称、开始按钮和退出按钮组成。游戏名称显示在一个TextView中,而游戏模式的选择则通过键盘上的左右键来抉择。点击帮助按钮则进入帮助界面显示帮助信息。点击开始按钮时,进入游戏模式选择界面。点击退出按钮则退出系统。以下是欢迎界面图:图1游戏的欢迎界面图图2显示菜单游戏的欢迎界面图3.
19、5.2 游戏帮助界面游戏的帮助界面主要包括五子棋简介,五子棋下棋规则和返回欢迎界面的按钮。以下是帮助界面图:图3帮助界面示意图图4显示菜单上网帮助界面示意图3.5.3 游戏主界面进入游戏主界面以后要选择游戏模式,活着点击菜单显示返回,开始,退出菜单选择相应的菜单项进行操作。选择模式是根据键盘上的方向键:按两下右键是人机对战。按下左键是人人对战。程序显示如下:图5显示菜单的主界面界面示意图(根据提示选择模式)图6进入游戏界面(人机对战)图7进入游戏界面(人机对战胜利显示)图10进入游戏界面(退出程序按下退出菜单),丁!®1244<+绿棋输了,»按两下向右键为一对。L向左
20、灌人-人对战-H4 .详细设计4.1 欢迎界面设计洁。本界面是有一个本设计遵循的是要设计一个操作简明的手机游戏,所以界面一定要方便简欢迎文本信息和菜单组成。点击退出按钮则会弹出退出提示的对话框。欢迎界面的类图如下:鼬施排曲旃凤如stR然情CominonActivityoidonfesumeO4.2 帮助界面设计本界面有一个显示帮助信息的文本框,以及菜单组成。帮助界面类图如下:CommonActivityfcraadcastReceiyef:Broatfcasltaei4.3 游戏主界面设计进入游戏主界面以后要选择游戏模式,活着点击菜单显示返回,开始,退出菜单选择相应的菜单项进行操作。选择模式是
21、根据键盘上的方向键:按两下右键是人机对战。按下左键是人人对战。游戏主界面的类图如下:Chessboard骷READY:MRUNNING:int0>PLAYER_TWO_LOST:int§bPLAYER_ONE_LOST:intcurrentModa:int的paint:PaintScreenintSbNEW_GREEN:intfibRED:mt5bNEW_R£D:intpointSizeini>textView:TextView<%>poin(Array():Bitmap命maxX:intmaxY:mt电player!:IPlayer射player:
22、Player都computer:IPWye1r聆human:IPlayerSbalIFreePoints.ListChessboard。ocSizeChangedQ*createLinesOdrawChssboardLines()drawPoint。booleanonKeyDownf)PointnewPoint()restart。booleanhasStart()booleanonTouctiEvent()*playerRun()*playerlRun()player2Run()4.4 人类玩家类和电脑玩家类BaseComputerAi*initRangeOSunWljKongAiPointg
23、etBestPointOPointdoAnalysisQ'PointgetFiratPoint()PointdoFirstAnalysisQPointdoComputerSencondAnalysis(),PointdoHumanSencondAnalysisf)TsIeepOPointdoHiirdAnalysisQPointgetBestPointf)'PointgetBestPointf)*initAnalysisResults()初dToFirstAnalysisResultQntcompareTowResultf)*FirstAnalysisResulltryAndC
24、ountResult()booleanisOutSideOWVallOPointpointToNextf)countPoint。intmaxCountOnTiisDinectionO*run()5 .人机智能算法分析5.1 知识准备5.1.1 极大极小树目前绝大部分的博弈类游戏中的人工算法都采用这种方法。假设己方为MAX点,对方则为MIN点。如果当层的节点为奇数时那么就为MAX层,同样为偶数时就为MIN层。当在MAX层时,该层的值就应该为下一个MIN层中的最大一个的值。当在MIN层是,该层的值就应该为它子层MAX的最小的一个。5.1.2 深度优先搜索在图论中有两个很重要的遍历的方法,一个是深度
25、优先搜索(DFS),另外一个是广度优先搜索(BFS).这两个方法的主要区别在于下一个节点的选择。DFS首先选择它的连接节点,若它的下个节点已经全部被遍历过或者不存在的话。则向上返回到上一个节点,在遍其他的未被访问过的点。很容易想到这要用到堆栈结构,使用一个递归来实现。而BFS则是逐个的遍历它的联接接点,将已经访问过的点放入队列中。然后再依次取出继续这个过程。5.1.3 剪枝方法当预测-的深度达到3的时候,最坏情况下225*225*225=11390625个,这在目前的一些常规平均的机器性能下也需要40多秒的时间,这是不能够容忍的。那么是否有很好的改进技术,去除那些不必要的节点,并且在剪去了这些
26、点后不影响结果呢?答案是肯定的,这种方法就是Alpha-Beta剪枝。5.2算法思想5.2.1 算法的主要设计思路本设计所使用的人工智能算法主要分为四步:第一步:考虑到系统的运行效率,根据平常下棋的经验,手机下的第一步子不需要经过复杂的分析计算。如果人类玩家下的第一步子是落在棋盘边界上时,则手机玩家的第一步子将落在棋盘的正中央;否则,手机玩家的第一步子将在紧挨着人类玩家第一步子的左边位置落下。第二步:为了缩短系统搜索分析时间,防止手机玩家每下一步棋都要将整个棋盘上所有的空白点都分析一次,本设计将设计一个函数计算搜索范围。然后根据搜索范围进行第一次搜索分析,排除不在搜索范围之内的空白点、不可能连
27、成五子即不可能胜利的点、以及活1,半活2点。搜索游戏双方有没有哪方即将胜禾L即双方有没有成五或者可不可以制造出活4。第三步:对第一次分析的结果进行再次分析。找出双方可以制造出活4的点的位置,如果没有的话,就分别整理出双方可以制造出活3的点的位置,半活4的点的位置,双活3的点的位置,半活3的点的位置,双活2的点的位置,活2的点的位置。第四步:由前两次的搜索分析得出双方都不可能制造活4,所以只能找活3,再没有的话就找半活4,在没有的话就找单活3,双活2等棋型。5.2.2 算法的主要流程游戏开始手机落第一个子计算搜索范围清空上一轮搜索结果第一次搜索,扫描所有空白点否在不在搜索范围之类,有没有可能连成
28、五子,是否为活1,半活2抛弃该点是否有一方即将胜利是否第二次搜索在即将胜利位置落子,不再往下分析是否有一方可以制造出活4是否整理出可以制造活3,半活4等棋型的位置在制造活4处落子,不再往下分析第三次搜索找出最佳落子位置落子。5.2.3 第一次搜索具体的计算方法为初始化当前搜索范围为玩家的第一步棋子的边界值加1,然后分别遍历黑白两方已下的棋子,如果该棋子在当前搜索范围内,则当前的搜索范围不做任何改变,如果该棋子不在当前搜索范围之内,则修改当前搜索范围使得该棋子在当前搜索范围之内。5.2.4 第二次搜索为了缩短系统搜索时间节省系统开销,系统将对黑白双方的第一次搜索结果进行分开分析。第二次分析,主要
29、是是分析第一次搜索结果,第一次搜索结果会把一步棋在四个方向上形成的结果生成最多四个对象(敌我各四),而第二次搜索把这四个对象组合成一个对象。15.2.5 第三次搜索当进行到第三次测试的时候,就表明黑白双方都没有成五和双活四,活四等棋型。那么我们就只有挑最佳的落子位置落子了,首先看黑白双方有没有双活三,没有的话就找半活四,在没有的话就找活三或者双活二或者活二等棋型。6.软件测试6.1 软件测试方案由于本次设计的是一个小型的单机游戏,相对来说没有很复杂的思路,庞大的编码量。单元测试和集成测试在编写代码的时候已经测试过了。这里将着重讨论一下系统测试。在实际软件项目开发中,系统测试常常不是非常正式,测试的只
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国家管网集团广西公司秋季高校毕业生招聘考试参考题库(浓缩500题)附参考答案详解(基础题)
- 2026秋季国家管网集团湖南公司高校毕业生招聘4人考试备考试题(浓缩500题)带答案详解(综合题)
- 2026秋季国家管网集团油气调控中心高校毕业生招聘14人考试参考试题(浓缩500题)带答案详解(新)
- 2026秋季国家管网集团储运技术发展有限公司高校毕业生校园招聘笔试参考题库(浓缩500题)及答案详解(历年真题)
- 2026国家管网集团高校毕业生招聘考试参考试题(浓缩500题)含答案详解
- 2026国家管网集团甘肃公司秋季高校毕业生招聘25人考试参考题库(浓缩500题)带答案详解(培优a卷)
- 2025国网浙江省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题及参考答案详解一套
- 2026年大兴安岭地区农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(真题汇编)
- 2026国网四川省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题附答案详解(研优卷)
- 2026国网湖北省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题附答案详解(突破训练)
- 第一章儿童生活与教育
- 飞山景区旅游开发运营方案
- 四年级上册语文阅读理解及答案(A4打印版)
- GB/T 3478.1-2008圆柱直齿渐开线花键(米制模数齿侧配合)第1部分:总论
- 服饰编码规则表参考范本
- DID方法与合成控制法-课件
- 临床医学研究设计及统计学问题课件
- 《郑伯克段于鄢》PPT
- 高速铁路客运设施设备课件
- InSAR干涉测量解析课件
- 磁通门传感器的工作原理
评论
0/150
提交评论