基于Android的五子棋游戏设计与实现毕业论文_第1页
基于Android的五子棋游戏设计与实现毕业论文_第2页
基于Android的五子棋游戏设计与实现毕业论文_第3页
基于Android的五子棋游戏设计与实现毕业论文_第4页
基于Android的五子棋游戏设计与实现毕业论文_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽大学本科毕业论文(设计、创作)题 目:基于 Android 的五子棋游戏设计与实现_学生姓名:刘锋_学号: E01014305_院(系): 计算机科学与技术学院专业:计算机科学与技术入学时间: _2010_ 年_9_ 月导师姓名:邹海_职称/学位:副教授/博士导师所在单位:安徽大学计算机科学与技术学院_完成时间: _ 2014_ 年_5_月I基于Android的五子棋游戏设计摘要手机游戏被业内人士称为继短信之后的又一座 “金矿”。 从2003年到2010年的市场销售额年均复 合增长率为62.4%。可以看出,手机游戏将经历一个黄金发展时期。3G的普及、手机显示性能的提高、手机屏幕的扩大和较高

2、的分辨率,解决了传统手机行业的很多弊端,手机休闲娱乐应用将成为PC休闲娱乐之后又一重要业务增长点。 同时Android采用了键盘形式的按键, 可以完成更复杂的操作。Android虽然基于Java,但是其虚拟机是基于寄存器的(这与普通的Java基于堆栈不同),速度得到很大的提升,这为Android平台上开发游戏提供了坚强的后盾。本论文主要阐述以面向对象的程序开发语言eclipse为开发工具,基于智能手机Android之上设计 一个五子棋游戏。五子棋起源于中国古代的传统黑白棋种之一,它不仅能增强思维能力 提高智力,而且富含哲理,有助于修身养性。本系统是本系统中设定了人机对战和人人对战两种模式。人机

3、对战实现的 是一些简单的算法,人人对战只是进行了输赢方的判定。它与javame的五子棋设计有许多的不一样,Android本来就是全触摸的形式,而且操作非常简单。关键词:五子棋 ;Android;人工智能IIThe Five in a Row Game Based on AndroidAbstractMobile games since the in dustry was called after a text message goldm ine aga in. From 2003 to 2010annual sales surged 62.4 percent from compound rat

4、e for. Can see,mobile games will experienee a golden periodof development. 3G phone displays the popularization and performanee improvement,the expansion of thephones screen, and a higher resolution , solve the traditional mobile phone industrys many drawbacks,mobile enterta inment applicati ons wil

5、l be after PC en terta inment ano ther importa nt bus in ess growth. Mea nwhile An droidalso USES a keyboard forms of butt ons that can do more complex operati on. An droid though,but its based on aJava virtual machine (which is based on the register with the ordinary Java stack-based differe nt),sp

6、eed, it got alot of asce nsion for the An droid platform games provide a strong back ing.This paper mainly expounds the object-oriented program development in eclipse for Ianguage developme nttool, smartph one An droid based on above desig n a five in a row game. Goba ng origi nated in China ancient

7、traditional black white kind, it not only can enhance one of thinking capacity, improve intelligence and high inphilosophy, helps to cultivate ones morality raises a gender. This system is the system that set the man-mach ineaga inst and every one aga inst two patter ns. The realizati on man-mach in

8、e aga inst some simple algorithm, everyone was aga inst just win the judgeme nt of the party. It has with the javame goba ng chess desig n many aredissimilar, An droid is the en tire touch ing form origi nally, moreover operates is simple.Keywords:five-in-a-row;android;artificial intelligenceIII1引言,

9、2概述,I/U人一,2.2课题来源,2.3课题研究现状及应用前景,3 Android开发环境,1Android开发环境变量配置,32.%2 JDK的配置,33.%2 Android开发插件的安装,44.%2 AVD的创建,54游戏相关技术,53.1游戏布局,53.1.1画盘线,53.1.2双缓冲技术画棋子,63.1.3在触摸处画棋子,73.1.4 newPoint方法将座标调整到对应的棋位上, 74.4.4人人对战, 84.1.4设置谁走的标记,84.1.4在触摸处下棋子,94.1.4判断轮到谁下棋子,94.1.4玩家一下棋的方法,94.1.4玩家二下棋的方法,104.1.4实现判断输赢的方法

10、,114.1.4提示游戏结束,134.4.4人机对战, 14 5游戏的实现, 15游戏主界面,15游戏帮助界面,16五子棋介绍界面,16游戏界面,17 1/J-J / xi丿丿|I II目录1222332.1背景,IV退出界面,176结论,主要参考文献,19致谢,20181引言随着社会的发展,目前全球的手机用户数量已经超过了PC机的数量,而且手机的数量正在快速增长,其中智能手机所占的比例越来越大,特别是随着3G技术发展时代的到来,移动互联网将是一个巨大的市场,许多国际大公司以及国内的大公司都在抢占智能手 机领域的市场份额。这期间,出现的智能手机可谓五花八门,种类繁多,但是真正好用, 受用户喜爱

11、的智能手机并不多。当互联网巨头Google宣布依靠android系统进军手机操作系统领域之后,三年来Android一路高歌,快速的获得众多用户和厂商的认同。随着Android手机终端的逐渐热 销,Android也引起众多手机应用程序开发商的关注,Android的出现带给了智能手机领 域更多的机遇和挑战,由于Android基于Linux内核且具有开源、免费的特性,它迅速得 到广大爱好者以及许多厂商的支持,基于Android所开发的手机游戏拥有巨大潜力已成为 行业共识3。3G的普及、手机显示性能的提高、手机屏幕的扩大和较高的分辨率,解决了传统手机 行业的很多弊端,同时Android也采用了键盘形式

12、的按键, 可以完成更复杂的操作。Android虽然基于Java,但是其虚拟机是基于寄存器的(这与普通的Java基于堆栈不同),速度得到很大的提升,这为Android平台上开发游戏提供了坚强的后盾1。随着移动开发技术的不断升级和终端设备成本的下降,近年来,手机在普通消费人群 中得到了极大的普及。凭借其便于携带、沟通迅捷、功能多样、私密性强等独有优势,手 机已经成为普通民众不可替代的随身工具。其益智、趣味和休闲的特点迎合了消费者的娱 乐需要,手机游戏的开发推广已经成为手机生产商和运营商重要的业务增长点,游戏软件 产业价值不断提升。手机游戏是手机的一种高附加值操作软件,游戏编程是手机软件编程 的重要

13、组成,同时也持续推动手机软件技术升级进步。中华民族是一个有着几千年悠久历史和璀璨文化的国家,而棋类娱乐却早已突破了纯 游戏的范畴而成为中国传统文化的一个分支。五子棋起源于中国古代的传统黑白棋种之 一,现代五子棋日文称之为“连珠”,英译为Renju,英文称之为“Gobang或“FIR”(Five in a Row的缩写),中文亦有“连五子” 、“五子连”、“串珠”、“五目”、“五目碰”、“五格” 等多种称谓。五子棋的棋文化源渊流长,具有东方的神秘和西方的直观,是中西文化的交 流点,是古今哲理的结晶。现在人们压力日益增大,需要劳逸结合才能获得更高的工作效率,工作之余的娱乐对 每一个人来说都是必不可

14、少的。五子棋这种娱乐方式简单易学又具有深奥的技巧,非常富 有趣味性和消遣性。 在经过不断发展后, 五子棋已经成为棋盘娱乐的一个重要的组成部分, 它能够增强思维能力、开发智力,是人们休闲娱乐的不错选择。近来随着计算机和手机的快速发展,各种各样的游戏层出不穷,使得人们能有更多的 娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用, 而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。现在的五子棋游戏软件基本上可以分为两类:一类是网络五子2棋游戏软件,另一类是单机版五子棋游戏软件。很少有手机版的五子棋游戏软件。为了满 足手机人群的需求,本文设计了这款手机版的五子棋游戏软件,可以供人们闲暇时间随时 随地

15、地进行娱乐,提高自己的五子棋水平,实用性强5。概述在我们的生活中有许多的游戏,但是游戏不同,它也会给玩家带来不同的感受和生活 理念。游戏是我们日常生活的一个必不可少的娱乐项目,也带动了游戏相关产业市场的发 展。游戏平台是经过从游戏机到电视游戏,然后从到pc游戏,到手机游戏,中间经历了 很多的技术的更新和变革。但随着新技术的发展和我们生活水平质量的提高,手机开始逐 渐变为普及,因为手机是非常小巧便捷的,而且方便的特性成为我们日常生活中必备通讯 工具。而基于手机平台的游戏也就拥有的市场空间是巨大的,也因随着3g的开通和应用, 手机游戏必然会迎来新的一轮游戏热潮!课题来源 现在的移动电话是小型的计算

16、机,它的处理能力与台式机的标准处理能力相比很有 限,但是足够运行一个小型的游戏。现在的手机的一个特性就是它们还是网络计算机,能 够高速发送和接收数字数据。 除了语音数据以外, 它们还可以发送和接收其它类型的数据 所以这样的网络游戏也可以在手机上实现。短信类游戏就好像“虚拟宠物”那样。短信游 戏是通过玩家和游戏服务商通过短信中的文字的内容来交流,达到进行游戏的目的的一种 文字游戏。 由于短信游戏的整个游戏过程都是通过文字来表达,造成短信游戏的娱乐性 较差。但是短信游戏却是兼容性最好的手机游戏之一。只要您的手机可以发短信,您就可 以畅快的享受短信游戏给您带来的快乐了。图形类游戏更接近我们常说的“电

17、视游戏” , 玩家通过动画的形式来发展情节进行游戏。由于游戏采用了更为直观且更为精美的画面直 接表现,因此图形类游戏的游戏性和代入感往往较文字类游戏高。 因此广受玩家们的欢迎。 嵌入式游戏是一种将游戏程序预先固化在手机的芯片中的游戏。由于这种游戏的所有数据 都是预先固化在手机芯片中的,因此这种游戏是无法进行任何修改的。也就是说,您不能 更换其它游戏的,只能玩您手机中已经存在的娱乐游戏,而且您也不能将它们删除。手机 在网络游戏行业在多年的技术经验与运营经验的积累与总结之后,到了2009年迫不及待 的需要创新出新的游戏模式和崭新的运营模式来推动手机游戏市场的爆发和发展。其中比 较吸引人们的是手机的

18、休闲类的游戏。应该可以说它是与PC网络游戏完全的脱离开了, 而且充分发挥了自身的优势手机终端。休闲类的游戏恰巧与之相反,只需要很少的网络流 量的网络环境,通过少量多次的游戏形式带给玩家流畅的游戏体验满足玩家瞬间提升的快 感,但是同时却很难具有长期的“沉迷”性。本题目是基于An droid平台开发的一个小型的程序。其实都差不多,在有JAVA的智能手机上都可以运行。其实手机是我们生活中不可缺少的工具,这些小游戏可以带给我们 快乐和放松我们的心情。无论什么样手机,我想买起来的时候上面就有一些它自带的各种 小游戏,其中有一个独特的小游戏也是非常重要的。课题研究现状及前景 在我们的生活中有许多的游戏,但

19、是不同的游戏,它也会给玩家带来不同的感受和生 活理念。游戏可以说我们日常生活的一个必不可少的娱乐项目,也带动了游戏相关产业市 场2.1背景3的发展即游戏周边。游戏平台是经过从游戏机到电视游戏,然后从到pc游戏,到手机 游戏,中间经历了很多的技术的更新和变革。 但随着新技术的发展和我们生活水平质量的 提高, 手机开始逐渐变为普及,因为手机是非常小巧便捷的,而且方便的特性成为我们日 常生活中必备通讯工具。而基于手机平台的游戏也就拥有的市场空间是巨大的,随着3G的开通和应用,手机游戏必然会迎来新的一轮游戏热潮现在的手机的已经不是以往那种传统意义上的手机了,称之为智能机再合适不过了, 它不仅具备打电话

20、发短信等传统功能而且对于计算机可以完成的大部分工作也可以完全 胜任。智能手机能够高速发送和接收数字数据,除了语音数据以外,它们还可以发送和接 收其它类型的数据,如是图像等。所以网络游戏也是完全可以在手机上实现的。其中比较 吸引人们的是手机上休闲类的游戏。应该可以说它是与PC网络游戏完全的脱离开了,而且充分发挥了自身的优势。休闲类的游戏只需要很少的网络流量的网络环境,通过少量多 次的游戏形式带给玩家流畅的游戏体验满足玩家瞬间提升的快感,但是同时却很难具有长 期的“沉迷”性,可以说是有百利而无一害。本次设计是基于Android平台开发的一个小 型的五子棋游戏程序。 五子棋游戏的简单易学, 老少皆宜

21、这些特性与智能手机的移动方便, 大范围普及等特点结合起来,必定会大放光芒,广受欢迎的。也真是由于上文所述的各种优势,导致手机五子棋游戏被越来越多的人研究学习,可 以说程序虽小但五味俱全,作为入门学习是再合适不过的了。网络上流传的五子棋游戏界 面精美,风格各异,实在是已经达到巅峰之作, 作者在此并不想去做那锦上添花之举, 所 以对于本次设计论文有一个明确的定位,在完成五子棋游戏的基本对战功能的设计同时不 再做各种附加功能的加强而是对其中所涉及的算法进行更加深入的学习。Android开发环境本章将主要介绍如何构建Android开发环境, 包括获取Android SDK、Eclipse以及 进行An

22、droidEclipse插件设置等。Android开发环境变量配置JDK的配置JDK的配置并没有什么值得特别叙述的东西, 在此主要阐述下JDK环境变量的配置问 题。首先右键点击我的电脑-属性-高级系统设置,点击下面的环境变量,在下面的“系统变量”处选择新建,在变量名处输入JAVA_HOME在变量值输入JDK路径,确定后再新建一个变量名为Classpath变量值为JAVA_HOME%/lib/rt.jar;%JA V-A_HOME%/Iib/tools.jar的变量,确定后找到PATH的变量,双击或点击编辑,在变量值最前面加上%JAVA_HOME%/bin;最后点击确定按钮即可4。如图3-1所示

23、。4- 环垢吏晶1askywalker的用户3(U)兗量iSTEMPHU SERPROFILE%UppDataLocaMempTMP%U SERPROFILE%AppDataL0!CBKT etnpW=aiN|-怖.-PathCWirtdowrts/iterTi32C;Wiridow4:C:Wi.B-PATHEXT.COMi-EXEi.BAT-XIMDT-VBft.VBErJJSE.PiRQCtOR_ARai. AM D64PIRCKESORJOE CntelM Family 6 Model 17 Stepping 5, G._ *砲叽.第宙山图3-1 JDK环境变量设置An droid开发插

24、件的安装打开Eclipse,在菜单栏上选择help-lnstall New Software在弹出的界面上选择add,将弹出如下界面,如图3-2所示IrnsEHAalUalilQ ScrtwojaSe-hJKt a日亡or ewe* Hie lBTa制砂oprefere nces,将进入一 个更新界面。选择你的an droid SDK解压后的目录,选错了就会报错,这个是升级工具, 可以进行手动选择。升级SDK版本,选择菜单wi ndow-A ndroid sdk and avd man age,如图3-3所示。Work whhl fcyp orHBIKIMvibaCamelVvrusnO Th

25、e-re kMshe srienedi5图3-3 SDK的配置AVD的创建新建AVD(a ndroid virtual device)和配置SDK差不多,进入an droid sdk and avd ma nager,选中Virtual Devices点击New按钮,如图3-4所示。AVD NiYrf-已inNL bi tiYiplf-图3-4 AVD的创建4游戏相关技术本章节主要介绍一下此论文中用到了的An droid的布局文件,可视化控件以及它们的具体实现。4.1游戏布局画盘线&nrh Pt毎Bl Run lAfihdw HelpJava - ADI1* O孚気巒由G宇吉J w F

26、jQurki* D = 口 n住应】PrefereiKes|* OkpUiy鼻ftiri wilh祝rejEdiduialing t&i.CjsnipuliriAridrcidri.iidE-bundlH-windtnn SC_642OI SlOJhdkBruwaaNal 9wigeiCSicEmuidLronOpiians:r* SnapshorlHuaEPUnriidi iht vnEiilq AVD创bn占rd込H;ar禹射严昉匕亡心詣jXHwt Srzr6以手工画图方式讲明白棋盘的座标计算方法:1取得屏幕宽高;2计算出第一根线 与左边和上边的距离;3推算其他线条计算方法。使用程

27、序实现以上计算方法,创建出15根横线与竖线,存进集合中。for (int i = 0; i = maxX; i+) /竖线lines.add(new Line(xOffset+i*POINT_SIZE, yOffset, xOffset+i*POINT_SIZE,yOffset+maxY*POINT_SIZE);for (int i = 0; i = maxY; i+) /横线lines.add(new Line(xOffset, yOffset+i*POINT_SIZE, (maxX+1)*POINT_SIZE,yOffset+i*POINT_SIZE);/在ondraw方法画出所有棋盘线f

28、or (Line line : lines) canvas.drawLine(line.xStart, line.yStart,line.xStop, line.yStop, paint);双缓冲技术画棋子 复制棋子对应的图片(四张)到工程中,使用这四张图片生成四个Bitmap:1从context中取得图片的代码Resources resources = this.getContext().getResources();Drawable drawable = resources.getDrawable(R.drawable.green_point)2将图片画到Bitmap(内存缓冲区)的过程/

29、为指定颜色对应的图片创建bitmap对象并放入到数组中public void fillPointArrays(intcolor,Drawable drawable) /创建Bitmap内存缓冲区(申请内存空间)Bitmap bitmap =Bitmap.createBitmap(POINT_SIZE, POINT_SIZE, Bitmap.Config.ARGB_8888);/创建画布、并设置将内容画到上面创建的Bitmap上Canvas canvas = newCanvas(bitmap);/设置资源画的范围大小drawable.setBounds(0, 0, POINT_SIZE, POI

30、NT_SIZE);/将图像资源画到缓冲区中drawable.draw(canvas);/把缓存区引用存进数组中(注意将下标定义以颜色命名的常量)bitmapscolor =bitmap;在onDraw方法将其在随意位置画出canvas.drawBitmap(bitmapscolor_index,0,0,paint);在触摸处画棋子通过onTouchEvent方法获得触摸位置座标,以此座标创建一个棋子,触发on Draw方 法,把刚才的棋子画出来public boolean onTouchEvent(MotionEvent event) Point point = newPoint(event.

31、getX(), event.getY(); /刷新一下棋盘,触发on Draw函数refressCanvas();7newPoint方法将此座标调整到对应的棋位上(以手工画图的方式确定棋子四周的 范围的计算方)private Point newPoint(Float x, Float y)/是否在棋盘线以外boolean isOutsideChessboard = true;Point p = new Point(0, 0);for (int i = 0; i = maxX; i+) if (i-1) * POINT_SIZE + xOffset + POINT_SIZE/2) = x&

32、; x (i * POINT_SIZE + xOffset + POINT_SIZE/2) p.setX(i);/找到横座标,证明不在棋盘线以外isOutsideChessboard = false;break;/如果横坐标在棋盘线外,返回空,不下棋子if(isOutsideChessboard)return null;/重置标志isOutsideChessboard = true;for (int i = 0; i = maxY; i+) if (i-1) * POINT_SIZE + yOffset + POINT_SIZE/2) = y& y (i * POINT_SIZE +

33、yOffset + POINT_SIZE/2) p.setY(i);/找到纵座标,也不在棋盘线外isOutsideChessboard = false; break;/纵标在棋盘线外if(isOutsideChessboard) return null;/横座标和纵座标都不在棋盘线外return p;人人对战设置标记-whoRun表示应该轮到谁下棋,1为玩家1下,2为玩家2下,-1表示玩家正在下/默认第一个玩家先行private int whoRun = 1; private void setPlayer1Run() whoRun = 1;8/是否轮到人类玩家下子privateboolean

34、isPlayer1Run() returnwhoRun=1;/是否轮到人类玩家下子privateboolean isPlayer2Run() returnwhoRun=2;private voidsetPlayer2Run() whoRun = 2;/正在下的过程中,主是因为电脑有较长的计算时间,这期间一定不可以再响应 触摸事件private void setOnProcessing()whoRun = -1;/是否正在下某一步棋过程中,主是电脑下棋时需要较长的计算时间,这期间一 定不可以再响应触摸事件private boolean isProcessing() return whoRun =

35、 -1;改写onTouchEvent方法,监听触摸事件,在触摸处下棋子/处理触摸事件public boolean onTouchEvent(MotionEvent event) /只处理开局后的触摸弹起事件if(event.getAction()!=MotionEvent.ACTION_UP) return true;/是否正在处理一步棋的过程中if(isProcessing() return true;/下一步棋playerRun(event);return true;playerRun方法判断轮到谁下棋子private synchronized void playerRun(MotionE

36、ventevent) if(isPlayer1Run()/第一玩家下棋player1Run(event);else if(isPlayer2Run()/第二玩家下棋player2Run(event);9玩家一下棋的方法private void player1Run(MotionEvent event)/取得正确座标的棋子Point point = newPoint(event.getX(), event.getY();if(point=null)/在棋盘外return ;if(allFreePoints.contains(point)/此棋是否可下/设置正在下棋子setOnProcessing

37、();player1.run(player2.getMyPoints(),point);/刷新一下棋盘refressCanvas();/判断第一个玩家是否已经赢了if(!player1.hasWin()/我还没有赢if(player2=computer)/如果第二玩家是电脑/10豪秒后才给玩家2下棋refreshHputerRunAfter(10);elsesetPlayer2Run();else/否则,提示游戏结束setMode(PLAYER_TWO_LOST);玩家二下棋的方法private void player2Run(MotionEvent event)Point point = n

38、ewPoint(event.getX(), event.getY();if(point=null)return ;if(allFreePoints.contains(point)/此棋是否可下setOnProcessing();player2.run(player1.getMyPoints(),point);/刷新一下棋盘refressCanvas();/判断我是否赢了if(!player2.hasWin()/我还没有赢setPlayer1Run();else/否则,提示游戏结束setMode(PLAYER_ONE_LOST);10实现判断输赢的方法private final Point te

39、mp = new Point(0, 0);/我是否是否赢了public final boolean hasWin()if(myPoints.size()=0& count=5)return true;temp.setX(x).setY(y);while (myPoints.contains(temp.setX(temp.getX()+1) &temp.getX()maxX & count=5)return true;/纵向count = 1; temp.setX(x).setY(y);while (myPoints.contains(temp.setY(temp.get

40、Y()-1) &temp.getY()=0) count +; if(count=5) return true; temp.setX(x).setY(y);while (myPoints.contains(temp.setY(temp.getY()+1) & temp.getY()maxY &count=5) return true;11/正斜向/count =1; temp.setX(x).setY(y);while (myPoints.contains(temp.setX(temp.getX()-1).setY(temp.getY()+1) &temp.ge

41、tX()=0 & temp.getY()=5) return true; temp.setX(x).setY(y);While (myPoints.contains(temp.setX(temp.getX()+1).setY(temp.getY()-1) &temp.getX()=0 & count=5) return true; /反斜 count = 1; temp.setX(x).setY(y); while(myPoints.contains(temp.setX(temp.getX()-1).setY(temp.getY()-1) & temp.getX

42、()=0 &temp.getY()=0) count +; if(count=5) return true; temp.setX(x).setY(y); while(myPoints.contains(temp.setX(temp.getX()+1).setY(temp.getY()+1) & temp.getX()maxX &temp.getY()maxY & count=5) return true;return false;提示游戏结束/设置运行状态public void setMode(int newMode) currentMode = newMode

43、;if(currentMode=PLAYER_TWO_LOST)/提示玩家2输了textView.setText(R.string.player_two_lost); currentMode =READY;else if(currentMode=RUNNING)textView.setText(null);else if(currentMode=READY) textView.setText(R.string.mode_ready);else if(currentMode=PLAYER_ONE_LOST)/提示玩家1输了textView.setText(R.string.player_one_

44、lost); currentMode =READY;12人机对战 轮到电脑下棋时,电脑先取出一个空白棋位(一个Point对象),以此棋位为起点计 算四个方向能形成多少步连续的棋子(即假设性下棋) -此为第一次计算。对应的结果类:FirstAnalysisResult/棋位Point point;/连续数int count;/状态int aliveState;/方向int direction;因为第一次计算的结果对一个棋位都会形成四个结果(每个方向一个结果)这一步将 这些结果汇总到一个类对象中 - 第二次计算。对应的结果类对象:SecondAnalysisResult implements Co

45、mparable/棋位Point point;/活4int alive4 = 0;/活3数量int alive3 = 0;/半活4,一头封的int halfAlive4 = 0;/半活3,一头封的int halfAlive3 = 0;/活2数量int alive2 = 0;对第二次计算结果进行排序,将结果分成三个等级,每个等级由一个集合装载,由子 类在排序结果挑选想要下的棋子。为了性能,在第一次计算前,必须确定一个较小的计算 范围,不能全部都算。另外,在每次找到必杀棋时,直接返回,不再往下计算。5游戏的实现游戏主界面13游戏的主界面如图5-1所示。五子棋五子棋Android 版本图5-1游戏主

46、界面14游戏帮助界面游戏的帮助界面如图五子棋介绍界面五子棋的介绍界面如图5-3所示。5-2所示。图5-2游戏的帮助界面图5-3五子棋的介绍界面15图5-5游戏退出界面游戏界面进入游戏后的界面如图5-4所示图5-4游戏界面退出界面游戏退出时的界面如图5-5所示。4rhH* HirlEwaDPW 1161 EtilM in AMTQH#rdwir耳#ybwdywr phjnjB kejtwdIP prprM. mprt第一牛擡166结论在本游戏的编写过程中,我遇到了许多的问题。首先要自己先自学一下Android的游 戏编程,虽然和JAVAME勺思想差不多,但是An droid上有许多的控件和类在J

47、AVAM上是 没有的,在这方面我遇到了很大的难题。还有就是对五子棋游戏的算法不是很清楚。在编 码实现的时候,会出现一些开始完全意料不到的问题,也许这些问题当中,有的是老师讲 过的,不过我想大部分还是老师没有讲过,这个时候就是体现出自己解决问题的能力的时 候了。在遇到问题时要学会如何去分析错误,再是学会如何去解决掉这个问题。在遇到问 题是,不要有害怕困难的情绪, 解决问题也是一个不断学习进步的过程, 遇到的问题越多, 学到的东西也就越多。因此在遇到困难之时,不要轻言放弃,要努力向前解决问题。我在2014年4月开始了我的毕业论文工作, 认真总结,经过长时间的写作到现在论文基本完成。 写毕业论文不是一件容易的事情, 需要不断的进行精心的修改, 不断地去研究各方面的文 献。经过很久的努力,终于在2014年5月份完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论