基于android平台的五子棋游戏_第1页
基于android平台的五子棋游戏_第2页
基于android平台的五子棋游戏_第3页
基于android平台的五子棋游戏_第4页
基于android平台的五子棋游戏_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

基于ANDROID平台的五子棋游戏学院软件学院专业软件工程时间2015年5月摘要现代科技的飞跃发展,3G智能手机为我们带来了很多便利,给我们提供了一个高效的平台,在社会各界得到越来越广泛的应用。因此,本文围绕一个“基于ANDROID平台的五子棋游戏设计与开发”程序的设计和应用系统的开发课题为背景,详细介绍了在ANDROID平台上以JAVA为语言编写游戏的过程。五子棋游戏的开发不仅是一个简单游戏的编写过程,更重要的是在系统分析和设计阶段所做的工作。该程序在设计过程中严格遵循软件工程学的方法,用分阶段的生命周期计划严格管理,并主要讲述了程序的总体设计、详细设计阶段,对程序进行需求迭代,不断修正和改进,利用SQLITE、SHAREDPREFERENCES等数据存储功能,直到形成一个完善的可行性系统界面美观、大方,方便的操作与良好的视觉感应共同构成了“基于ANDROID平台的五子棋游戏设计与开发”的设计。关键词ANDROID;JAVA;数据存储;软件工程;五子棋ABSTRACTMODERNTECHNOLOGYDEVELOPSRAPIDLYINOURSOCIETYITMAKESOURLIVESMORECONVINIENTANDPROVIDESANEFFICIENTPLATFORMFORUSRECENTLY,THE3GSMARTPHONEBECOMESMOREANDMOREPOPULARTHEREFORE,MYTHESISWILLTALKABOUTTHEPROGRESSOFTHEGAMESWHICHISPROGRAMEDBYTHEJAVALANGUAGEMYPAPERISBASEDONTHETASKSONTHEPROGRAMDESIGNANDTHEAPPLICATIONSYSTEMWHICHISBASEDONTHEQUINTETGAMEDESIGNANDDEVELOPMENTBUILTONTHEANDROIDTHEDEVELOPMENTOFTHEQUINTETGAMEISNOTJUSTAPROGRESSOFPROGRAMINGWHATSMORE,WENEEDTOPAYMOREATTENTIONTOTHEWORKONTHEPERIODOFSYSTEMATICANALYSISANDDESIGNTHEPROGRAMFOLLOWSTHESOFTWAREENGINEERINGSTRICTLYANDNARRATESTHEMAJORDESIGNANDSECTIONTHISPROGRAMMAILYTALKABOUTTHEPERIODOFTHESYSTEMDESIGNANDTHEDETAILEDDESIGNANDALSOITWILLSTUDYONTHEBUGFIXINGANDIMPROVEMENTSBYUSINGTHESOMEFUCTIONGOFDATALOGGINGSUCHASTHESQLITE,SHAREDPREFERENCES,ITBUILDAPRACTICABLESYSTEMTHENICEANDEXPERTINTERFACEANDGOODVISUALINTRODUCTIONFORMTHEDESIGNWHICHISBASEDONTHEDESIGNINGANDDEVELOPMENTOFANDROIDPLATFORMQUINTETGAMEKEYWORDSANDROIDJAVADATASTORAGESOFTWAREENGINEERINGQUINTETGAME目录1绪论111课题研究的背景112国内发展状况813开发工具简介9131ANDROID操作系统9132ANDROID平台与其他平台的比较9133ANDROID开发环境介绍10134ANDROID开发平台构建11135ANDROID的功能特征13136数据存储简介1514系统运行配置162五子棋手机游戏概述1721五子棋游戏简介1722手机游戏的优点17221庞大的潜在用户群17222便携性18223支持网络1823五子棋术语183ANDROID的系统研究2132ANDROID简介2131ANDROID的构架22311ANDROID构架综述22312ANDROID应用程序框架层24313ANDROID应用程序层244需求分析2541系统需求2542功能需求2643性能需求2644可行性研究26441经济可行性26442技术可行性265概要设计2751系统功能结构及流程图2752数据存储设计276详细设计2861主界面详细设计2862游戏开始模块详细设计32621背景音乐35622两大难度算法的设计及输赢的判断3563游戏说明模块详细设计3964作者介绍模块详细设计3965游戏设置模块详细设计407游戏的实现4171背景音乐的实现4172两大难度的实现42721简单42722困难4373游戏输赢判断的实现44结论49参考文献50致谢51绪论11课题研究的背景随着计算机与网络技术的日益发达,同时也进入了高效的信息化时代,说起手机,没有一个人会感到陌生。近几年来一个名词一直影响着许许多多的手机用户,它就是智能手机。智能手机凭借其强大的功能吸引住了许多用户的眼球,因为有了广大的用户基础,智能手机也风靡一时。说起智能手机,除了他有一颗强大的CPU和其他一些较高配置的硬件外,其真正的智能还要归功于其不可缺少的智能操作系统。随着3G的到来,无线带宽越来越高,使得更多内容丰富的应用程序部署在手机上成为可能,比如视频通话、视频点播、移动互联网等。为了承载这些数据应用及快速部署,手机功能将越来越智能越来越开放。手机游戏也就应运而生,每个手机上都有手机游戏,游戏是人们娱乐的一种方式。ANDROID平台下的手机游戏更是受顾客的亲睐,手机游戏不仅玩起来比较方便,还有助于开发我们的思维,使大家在娱乐的同时也增长了见识,拓展了思维。五子棋对自己的思维及协调能力有益,能使我们注意力集中,耐心也有明显的提升,培养我们的逻辑思维能力,对智力以及记忆力都很有帮助。目前全球的手机用户数量已经超过了PC机的数量,而且手机的数量正在快速增长,其中智能手机所占的比例越来越大,特别是随着3G技术发展时代的到来,移动互联网将是一个巨大的市场,许多国际大公司以及国内的大公司都在抢占智能手机领域的市场份额。这期间,出现的智能手机可谓五花八门,种类繁多,但是真正好用,受用户喜爱的智能手机并不多。当互联网巨头GOOGLE宣布依靠ANDROID系统进军手机操作系统领域之后,多年来ANDROID路高歌,快速的获得众多用户和厂商的认同。随着ANDROID手机终端的逐渐热销,ANDROID也引起众多手机应用程序开发商的关注,ANDROID的出现带给了智能手机领域更多的机遇和挑战,由干ANDROID基于LINUX内核且具有开源、免费的特性,它迅速得到广大爱好者以及许多厂商的支持,基于ANDROID所开发的手机游戏拥有巨大潜力已成为行业共识。3G的普及、手机显示性能的提高、手机屏幕的扩人和较高的分辨率,解决了传统手机行业的很多弊端,同时ANDROID也釆用了键盘形式的按键,可以完成更复杂的操作。ANDROID虽然基于JAVA,但是其虚拟机是基于寄存器的(这与普通的JAVA基于堆栈不同),速度得到很大的提开,这为ANDROID平台上开发游戏提供了坚强的后盾。随着移动开发技术的不断升级和终端设备成本的下降,近年来,手机在普通消费人群中得到了极大的普及。凭借其便于携带、沟通迅捷、功能多样、私密性强等独有优势,手机已经成为普通民众不可替代的随身工具。其益智、趣味和休闲的特点迎合了消费者的娱乐需要,手机游戏的开发推广已经成为手机生产商和运营商重要的业务增长点,游戏软件产业价值不断提升。手机游戏是机偶的一种高附加值操作软件,游戏编程是手机软件编程的重要组成,同时也持续推动手机软件技术升级进步。中华民族是一个有着几千年悠久历史和璀燦文化的同家,而棋类娱乐却早巳突破了纯游戏的范畴而成为中华传统文化的一个分支。五子棋起源于中国古代的传统黑白棋种之一,现代五子棋日文称之为“连珠”,英译为RENJU,英文称之为“GOBANG”或“FIR”(FIVEINAROW的缩写),中文亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。五子棋的棋文化源渊流长,具有东方的神秘和西方的直观,是中西文化的交流点,是古今哲理的结晶。现在人们压力口益增人,需要劳逸结合才能获得更高的工作效率,工作之余的娱乐对每一个人来说都是必不可少的。五子棋这种娱乐方式简单易学又具有深奥的技巧,非常富有趣味性和消遣性。在经过不断发展后,五子棋已经成为棋盘娱乐的一个重要的组成部分,它能够增强思维能力、开发智力,是人们休闲娱乐的不错选择。近来随着计算机和手机的快速发展,各种各样的游戏层出不穷,使得人们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。现在的五子棋游戏软件基本上可以分为两类一类是网络五子棋游戏软件,另一类是单机版五子棋游戏软件。很少有手机版的五子棋游戏软件。为了满足手机人群的需求,本文设计了这款手机版的五子棋游戏软件,可以供人们闲暇时间随时随地地进行娱乐,提高自己的五子棋水平,实用性强。本课题要研究在ANDROID手机上开发一款人机对战模式的五子棋游戏。游戏界面部分凭借ANDROID平台提供的非常完美的控件和精美的布局框架设计出个内容清楚、指示明白、屏幕美观和有亲切感的游戏界面。在人机对战中通过极大极小树原理、深度搜索方法、剪枝方法等理论来模拟一个运行效率快,具有一定智能的对手来同游戏玩家一较高下。此外,本软件还必须具备如下基本功能显示一个十五行十五列的五子棋棋盘。在棋盘上而对应位置通过触屏点击下子,棋盘上将在相应的位置上显示棋子,并且棋子在纵横交点上。可以自动判断游戏是否结束,判断胜负,是否黑方或名内方已经胜出,并且通过提示信总来提醒玩家。在游戏上方会有一个游戏信息,这个游戏信息是用来提示当前游戏状态和当前是黑白双方的哪一方下子,玩家可以根据这个提示来相成的下棋,而不会导致不清楚轮到哪一方下棋的情况出现。可以重新开始游戏,悔棋,音乐的功能。要有游戏介绍界面。12国内发展状况随着3G时代的到来,在这个新的研究领域中,我国在世界上处于较为领先的地位,我国电信业正处在高速发展的阶段,特别是新业务、新服务在打造品牌、创建市场的时期,对电信产业的结构调整必须充分的考虑成本。由我国自主研发并获政府支持的TDSCDMA制式技术,在频谱利用率、对业务支持具有灵活性等独特优势。这种全称为TIMEDIVISIONSYNCHRONOUSCDMA时分同步CDMA的技术,其空中接口采用了四种多址技术TDMA,CDMA,FDMA,SDMA智能天线。综合利用四种技术资源分配时在不同角度上的自由度,得到可以动态调整的最优资源分配。克服由覆盖半径随用户数目的增加而收缩造成的呼吸效应和当手机靠近基站功率必定过剩而且形成有害的电磁辐射所造成的远近效应,并且实现了动态信道分配。而分别由欧洲和美韩所倡导的WCDMA和CDMA2000也各具优势。我过拥有庞大的手机用户群体,为游戏产业的发展奠定了良好的用户基础。手机游戏的真正生命力,是成为最终吸引用户的关键所在。通过色彩艳丽的画面或奇特的游戏名称来吸引用户。3G手机游戏开发周期相对比较短,资金投入小,用户广泛统一;载体方便,很容易在市场上推广;如需收费,也合理方便。游戏可以锻炼思维及协调能力,能使我们注意力和耐心有所提高,培养我们的逻辑思维能力,对智力以及记忆力都很有帮助。13开发工具简介131ANDROID操作系统经过多年的发展,第三代数字通信3G技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。GOOGLE与包括中国移动、摩托罗拉在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月推出了一个专为移动设备设计的软件平台ANDROID。ANDROID一词的本义指“机器人”,同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称,该平台由操作系统,中间件,用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。ANDROID最大特点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验,ANDROID里面具有非常丰富的图形系统,对多媒体的支持功能和非常强大的浏览器。132ANDROID平台与其他平台的比较首先看一下SYMBIAN,它存在着以下的致命不足SYMBIAN的主导者为诺基亚、索尼爱立信等传统的手机厂商,因此虽然SYMBIAN非常成熟,但它基本上还带有浓厚的保守色彩,应用软件与我们日常的PC软件有较大的理念差异。再者SYMBIAN与互联网的结合给人感觉仍不够紧密,互联网应用更多只是作为陪衬存在。ANDROID平台与此相反,移动互联网是它最重要的应用,无论系统内核、应用软件还是硬件设计,几乎都是围绕着快捷的移动互联网应用所展开,同时ANDROID与PC平台存在先天的基因联系,可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。与ANDROID拥有相同属性的还有微软的WINDOWSMOBILE。至于IPHONE,它只是苹果公司的封闭平台,用户无法在IPHONE中自行安装应用,所有的东西都应该苹果自行设计制造,从而确保利润不被第三方分享。苹果自己为IPHONE开发了嵌入系统以及完整的应用,但它干脆都不宣扬IPHONE的软件设计,而是将IPHONE作为一个包含软硬件卖点的手机产品出售。同样,苹果式的奢华与时尚让IPHONE大获成功,以至于成为手机市场的风向标。与苹果相反,ANDROID则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为业界所公认自由软件高度活跃,错误可以被快速修正,新的应用、新的创意可以不断出现。ANDROID平台的另外一个优势是标准化和跨平台。ANDROID和操作系统进行了紧密的整合,从而可以方便地使用操作系统的功能。这与难于使用操作系统功能的J2ME相比,无疑对开发者有很大的吸引力。并且从图形应用界面的开发上面来看,ANDROID可以使用配置文件来描述图形控件的布局,用JAVA代码编写实际响应代码,这样方便得多。当然由于ANDROID己经提供了大量现成的应用API和应用工具,使得常规智能手机功能的开发变得非常容易和简单。133ANDROID开发环境介绍ANDROID的上层应用程序是用JAVA语言开发,同时还需要基于DALVIK虚拟机,所以,GOOGLE公司推荐使用主流的JAVA继承开发环境ECLIPSE。只有ECLIPSE还不够,因为是使用JAVA语言进行开发,还应该由SUN公司提供的JAVASDK(其中包括JREJAVARUNTIMEENVIROMENT)。此外,ANDROID的应用程序开发和JAVA开发有较大区别,所以需要有GOOGLE提供的ANDROIDSDK。同时,还需要在ECLIPSE安装ADT,为ANDROID开发提供开发工具的升级或者变更,是ECLIPSE下开发工具的升级下载的工具。简而言之,需要以下软件,才能搭建ANDROID开发环境,从而进行ANDROID应用程序的开发。(1)JAVASDK(2)ECLIPSE(3)ANDROIDSDK(4)ADT13ANDROID开发平台搭建(1)JDK下载JDK,按照安装提示一步一步走。设置环境变量步骤如下1我的电脑属性高级环境变量系统变量中添加以下环境变量2JAVA_HOME值为DPROGRAMFILESJAVAJDK你安装JDK的目录3CLASSPATH值为JAVA_HOMELIBTOOLSJARJAVA_HOMELIBDTJARJAVAHOMEBIN4PATH在开始追加JAVA_HOMEBIN5NOTE前面四步设置环境变量对搭建ANDROID开发环境不是必须的,可以跳过。安装完成以后,可以在检查JDK是否安装成功。打开CMD窗口,输入JAVAVERSION查看JDK的版本信息。出现类似以下的画面表示安装成功(2)ECLIPSE安装下载ECLIPSEJAVAGALILEOWIN32解压后直接安装就可以使用(3)ANDROIDSDK安装下载ANDROIDSDK_R12WINDOWS,下载完成后解压到D盘运行SDKSETUPEXE,点击AVAILABLEPACKAGES。如果没有出现可安装的包,请点击SETTINGS,选中MISC中的“FORCEHTTPS/“这项,再点击AVAILABLEPACKAGES;选择希望安装的SDK及其文档或者其他包,点击INSTALLATIONSELECTED、ACCEPTALL、INSTALLACCEPTED,开始下载安装所选包在用户变量中新建PATH值为ANDROIDSDK中的TOOLS绝对路径(本机为DANDROIDDEVELOPANDROIDSDKWINDOWSTOOLS)“确定”后,重新启动计算机。重启计算机以后,进入CMD命令窗口,检查SDK是不是安装成功。运行ANDROID_H如果有类似以下的输出,表明安装成功验证ANDROIDSDK是否安装成功(4)ADT安装打开ECLIPSEIDE,进入菜单中的“HELP“INSTALLNEWSOFTWARE“点击ADD按钮,弹出对话框要求输入NAME和LOCATIONNAME自己随便取,LOCATION输入HTTP/DLSSLGOOGLECOM/ANDROID/ECLIPSE。如下图所示确定返回后W,在ORKWITH后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有DEVELOPERTOOLS,展开它会有ANDROIDDDMS和ANDROIDDEVELOPMENTTOOL,勾选他们。如下图所示然后就是按提示一步一步NEXT。完成之后选择WINDOWPREFERENCES在左边的面板选择ANDROID,然后在右侧点击BROWSE并选中SDK路径,本机为DANDROIDDEVELOPANDROIDSDKWINDOWS点击APPLY、OK。配置完成。(5)创建AVD为使ANDROID应用程序可以在模拟器上运行,必须创建AVD。1在ECLIPSE中。选择WINDOWSANDROIDSDKANDAVDMANAGER2点击左侧面板的VIRTUALDEVICES,再右侧点击NEW3填入NAME,选择TARGET的API,SDCARD大小任意,SKIN随便选,HARDWARE目前保持默认值4点击CREATEAVD即可完成创建AVD以上就完成了ANDROID开发环境的搭建。135ANDROID的功能特征(1)应用程序架构在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。(2)DALVIK虚拟机器在ANDROID平台上所使用JAVA虚拟机,不是SIM公司的标准JAVA虚拟机,而是使用GOOGLE自主开发的代号为DALVIK的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。(3)集成的浏览器集成的浏览器是ANDROID内建的浏览器,是以WEBKIT的浏览引擎为基础所开发成的。WEDKIT是一个开源浏览器网页排版引擎,目前使用WEBKIT引擎的浏览器主要有SAFARI,MIDORI,EPIPHANY等。配合ANDROID手机的功能,可以在浏览网页时,达到更好的效果,例如局部性的缩放网页上的资讯、触控式的操作等效果。(4)优化的绘图能力在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,ANDROID提供了一套特有的类库SGL而在3D方面则是使用OPENGLES10OPENGLFOREMBEDDEDSYSTEMS规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。(5)SQLITE数据库SQLITE提供结构化的数据存取。SQLITE是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。它能够支持WINDOWS/LINUX/UNIX等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP,JAVA等,还有ODBC接口,同样比起MYSQL,POSTGRESQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLITE也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。(6)多媒体的支持能力主要用于播放媒体文件。这同时包括对音频如播放MP3或其他音乐文件等和视频如播放从网上下载的视频的支持,并支持“播放URI地址”NOTEURI即是统一资源识别地址模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如JPG、PNG、GIF等格式。(7)GLOBALSYSTEMFORMOBILECOMMUNICATIONS,即全球移动通讯系统,俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。GSM技术是属于手机硬件方面的展现,也是在开发ANDROID应用程序时可以突出的特点之一。(8)蓝牙、EDGE、3G及WIFI蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGEENHANCEDDATARATEFORGSM,EVOLUTION,即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操作和SPSK调制技术。由于8PSK可将现有GSM网络采用的GMSK调制技术的信号空间从2扩展到8,从而使每个符号所包含的信息是原来的4倍。WIFIWIRELESSFIDELITY,即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是24GHZ附近的频段,该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,分别是IEEE802LLA和IEEE80211B。这些通讯能力也是属于手机硬件方面的展现,也是在开发ANDROID应用程序时可以突出的特点之一。GPSGLOBALPOSITIONINGSYSTEM,即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现,也是在开发ANDROID应用程序是可以突出的特点之一。136数据存储简介SHAREDPREFERENCES存储方式,它是ANDROID提供的用来存储一些简单配置信息的一种机制,例如登录用户名和密码。其采用了MAP数据结构来存储数据,以键值的方式存储,可以简单的读取与写入。最高纪录则用此存储方式进行存储。SQLITE存储方式,它是ANDROID平台上集成的一个嵌入式关系型数据库。SQLITE3支持NULL、INTEGER、REAL(浮点数字)、TEXT字符串文本和BLOB二进制对象数据类型,虽然它支持的类型虽然只有五种,但实际上SQLITE3也接受VARCHARN、CHARN、DECIMALP,S等数据类型,只不过在运算或保存时会转成对应的五种数据类型。SQLITE最大的特点是你可以保存任何类型的数据到任何字段中,无论这列声明的数据类型是什么。例如可以在INTEGER字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。但有一种情况例外定义为INTEGERPRIMARYKEY的字段只能存储64位整数,当向这种字段中保存除整数以外的数据时,将会产生错误。另外,SQLITE在解析CREATETABLE语句时,会忽略CREATETABLE语句中跟在字段名后面的数据类型信息。14系统运行配置操作系统ANDROID21以上。开发包JDK16、ANDROIDSDK。数据存储SHAREDPREFERENCES、SQLITE。2五子棋手机游戏概述21五子棋游戏简介五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑闩棋种之一。发展于日本,流行于欧美。现代五子棋日文称之为“连珠”,英译为“RENJU”,英文称之为“GOBANG”或“FIR”(FIVEINAROW的缩写,亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身奍性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的W际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。22手机游戏的优点221庞大的潜在用户群现在全球超过十亿部移动电话正在被使用,并且这个数字还在逐渐増加。在除美国之外的每个发达国家,拥有手机的人数比拥有计算机的人数还要多。虽然这些手机只有小部分是支持JAVA游戏的手机,但是这个数目正在快速地提高并且在几年内ANDROID手机将要成为行业标准。移动游戏潜在的市场比其它仟何平台比如PLAYSTATION和GAMEBOY都要大。222便携性GAMEBOY比其他任何控制台游戏卖出的多的一个原因就是其的便携性。与现在的游戏控制台或个人电脑相比,手机可能不是一个好的游戏设备,但是人们基本上是随时随地都把它们带在身边,在人们离开家或者想玩的时候,可以不受任何时间地点限制地玩自己选择的游戏。223支持网络因为移动电话是网络设备,所以可以实现多人游戏。23五子棋术语黑方执黑棋一方的简称。白方执白棋一方的简称。胜局有一方获胜的对局。和局分不出胜负的对局。终局对局结束。阳线棋盘上可见的纵线和直线。阴线棋盘对角线及与对角线平行的隐形斜线。线阳线和阴线统称为线。交叉点纵、横阳线的交点,简称“点”。落子棋子直接落于棋盘的空白交叉点上。也称“下子”和“着子”轮走方即“行棋方”,交替落子的过程中轮到落子的一方。着在对局过程中,行棋方每一次落子均被视为一着。回合双方各走一着,称为一个回合。开局在对局开始阶段形成的布局。一般指前3手棋形成的局面。连2枚以上的同色棋子在一条线上邻接成串。五连五枚同色棋子在一条线上邻接连串。长连五枚以上同色棋子在一条线上邻接成串。成五五连和长连的统称。威胁下一手可以成五或者活四的点。四五连去掉1子的棋型。活四有两个威胁的四。冲四只有一个威胁的四。死四不能成五的四连。三可以形成四再形成五的三枚同色棋子组成的棋型。活三再走一着可以形成活四的三。连活三两端都是威胁的活三。简称“连三”。跳活三中间夹有一个威胁的活三。简称“跳三”。死三不能成五的三。二可以形成三、四直至五的两枚同色棋子组成的棋型。活二再走一着可以形成活三的二。眠三再走一着可以形成冲四的三。连活二连的活二。简称“连二”。跳活二中间隔有一个空点的活二。简称“跳二”。大跳活二中间隔有两个空点的活二。简称“大跳二”。眠二再走一着可以形成眠三的二。死二不能成五的二。先手对方必须应答的着法,相对于活三先手而言,冲四称为“绝对先手”。三三一子落下同时形成两个活三。也称“双三”。四四一子落下同时形成两个冲四。也称“双四”。四三一子落下同时形成一个冲四和一个活三。3ANDROID的系统研究31ANDROID简介ANDROID是基于LINUX内核的操作系统,是GOOGLE公司在2007年11月5日公布的手机操作系统,早期由GOOGLE开发,后由幵放手持设备联盟OPENHANDSETALLIANCE幵发。ANDROID系统具有开放性、应用程序无界限、应用程序是在成活平等的条件创建的、应用程序可以轻松地嵌入网络和应用程序可以并行运行等特点。ANDROID的系统架构共分为4层,由高到低分别是应用层、应用框架层、系统运行库层和LINUX内核层。从技术角度而言,ANDROID与IPHONE相似,釆WEBKIT浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查收邮件,搜索网址和观看视频节目等。ANDROID比IPHONE等其它手机更强调搜索功能,界面更强大,可以说是一种融入了全部WEB应用的平台。随着版木的更新,从最初的触屏到现在的多点触摸,从普通的联系人到现在的数据同步,从简单的GOOGLEMAP到现在的导航系统,从基本的网页浏览到现在的HTML5,这都说明ANDROID己经逐渐稳定,而且功能越来越强大。此外,ANDROID平台不仅支持JAVA、C、C等主流的编程语言,还支持RUBY、PYTHON等脚本语言,甚至GOOGLE专为ANDROID的应用开发了SIMPLE语言,这使得ANDROID有着非常广泛的开发群体。ANDROID应程序由四个模块构造而成ACTIVITY,INTENT,CONTENTPROVIDER,SERVICE。当然也不是每个ANDROID应用程序都必须由这四部分组成,可以根据幵发者的需求进行组合。但是任何一个应用程序模块都必须在ANDROIDMANFESTXML文件中声明使用到的这些模块。ACTIVITY是最基本的模块。我们称之为“活动”。简申理解,ACTIVITY代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如,监听系统事件(按键事件、触摸屏事件等),为用户显示指定的VIEW,启动其他ACTIVITY等。所有应用的ACTIVITY都继承于ANDROIDAPPACTIVITY类,该类是ANDROID提供的基层类,其他的ACTIVITY继承该父类后,通过父类的方法来实现各种功能,这种设计在其他领域也较为常见。ANDROID用INTENT这个特殊类实现在ACTIVITY与ACTIVITY之间的切换。INTENT类用于描述应用的功能。在INTENT的描述结构中,有两个最重要的部分动作和动作对应的数据。典型的动作类型有MAIN、VIEW、PICK、EDIT等,而动作对应的数据则以URI的形式表示。数据是应用的核心。在ANDROID屮,默认使用鼎鼎大名的SQLITE作为系统数据库。但是在ANDROID中,使用方法有点小小的不一样。在ANDROID中,每一个应用都运行在各自的进程中,当一个应用需要访问其他应用的数据时,也就是数据需要在不同的虚拟机之间传递,这样的情况操作起来可能有些困难(正常情况下,你不能读取其他成用的DB文件,CONTENTPROVIDER正是用来解决在不同的应用包之间共亨数据的工具。SERVICE即“服务”的意思,既然是服务,那么SERVICE将是一个生命周期长而且没有用户界面的程序。比如一个正在从播放列表中播放歌曲的媒体播放器,在这个媒体播放器应用屮,应该会有多个ACTIVITY,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的ACTIVITY,因为使用者会认为在导航到其他屏幕时音乐应该还在播放。在这个例子屮,媒体播放器这个ACTIVITY会使CONTEXTSTARTSERVICE来启动一个SERVICE,从而可以在后台保持音乐的播放。同时,系统也将保持这个SERVICE直执行,直到这个SERVICE运行结束。另外,我们还可以通过使用CONTEXTBINDSERVICE方法连接到一个SERVICE上如果这个SERVICE当前还没有处于启动状态,则将启动它)。当连接到一个SERVICE之后,还可用SERVICE提供的接口与它进行通讯。以媒体播放器为例,我们还可以执行暂停、重播等操作。32ANDROID的构架321ANDROID构架综述ANDROID是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。作为一个层次结构的软件集,一定有一个层次的系统构架,下图为ANDROID的构架图图21ANDROID系统构架从图21中明显的可以看出该系统从下到上包括LINUX内核层、LIBRARIES和运行时环境层、应用程序框架层、应用程序层四层结构。在ANDROID的最下层的操作系统基于LINUX26内核,往上的中间件包括LIBRARIES和运行时环境层和应用程序框架层两个层次,最上层则是应用程序层。在ANDROID构架中,可以很明显的看到,底层的LINUX内核则采用的是C语言,LIBRARIES采用C或者C,但是应用程序层、应用程序框架层和运行时环境中的ANDROID核心库采用JAVA语言编写,也就是说ANDROID虽然底层用的是C或者C但是应用程序的开发则用的是JAVA。GOOGLE采用这样的模式可能是因为相对于C或者C,JAVA的开发周期更短的缘故,这样的话就能在短时间内为ANDROID提供大量的应用软件。我们知道,作为一个智能手机平台,只有拥有了大量的源源不断的应用程序作为支持,才能受人们的欢迎,从而才能占领市场。之前NOKIA的S60第三版就是一个很好的例子,因此NOKIAS60V3的系统才被世人所熟知,并且曾经在智能手机行业占有很大的市场。而另一个例子就是LINUX系统,在所有操作系统中,稳定性和性能上能够和LINUX抗衡的系统不多吧,但是在智能手机市场上为什么LINUX却可以说是一败涂地,其原因也和其第三方应用少是脱不了关系的。322ANDROID应用程序框架层应用程序框架层是处于ANDROIDRUNTIME和库函数层于应用程序层之间,该层使用开发语言的是JAVA语言。应用程序框架是能够让开发者完全访问核心应用程序所使用的API(APPLICATIONPROGRAMMINGINTERFACE,应用程序编程接口),该框架能够让组件软件重用的工做简单化。同时该框架中的任何一个功能模块都是等价的,任何一个应用程序都可以发布其功能模块,该功能模块可以替代当前的任意一个功能模块,但前提是必须遵循框架的安全限制,另外,其他的任意应用程序能够使用这个发布的功能模块。这样的设计就使ANDROID的构件重用率提高了。在每一个应用程序背后,应用程序框架为其提供了一系列的服务。这些服务包括一个丰富并且可扩展的视图,通过这个视图我们可以使用它提供的一些包括按钮、文本框、列表、网格等甚至可嵌入的WEB浏览器的应用程序来构造我们的应用程序。内容提供器(CONTENTPROVIDERS),有了内容提供器,一个应用程序可以共享它自己的数据或者访问另外一个应用程序中共享的数据。资源管理器(RESOURCEMANAGER),使用资源管理器,我们在应用程序中能够访问到一些如图形、布局文件等一些非代码资源。通知管理器(NOTIFICATIONMANAGER),给程序员提供了一个可以在程序状态栏中显示自定义提示信息的管理器。活动管理器(ACTIVITYMANAGER),提供常用导航功能用来管理应用程序生命周期的服务。通过这些应用程序框架层提供的服务程序员能够方便的开发一个界面优秀功能强大易于共享的的应用程序。323ANDROID应用程序层应用程序层包括了如名片管理、GOOGLEMAPS、浏览器等本地应用程序(NATIVEAPPS),如QQ、MSN、QUICKOFFICE等第三方应用程序(THIRDPARTAPPS),以及DEVELOPERAPPS。同样,该层的应用程序也都使用JAVA语言进行开发的。4需求分析41系统需求手机屏幕尺寸分为物理尺寸和显示分辨率两个概念。物理尺寸是指屏幕的实际大小。大的屏幕同时,要配备高的分辨率,也就是在这个尺寸下可以显示多少个像素,显示的像素越多,可以表现的余地自然就越大。现在手机行业发展迅速,不同大小屏幕的手机迅速发展,鉴于不同手机屏幕尺寸不同,在设计游戏的时候必须满足软件的界面简洁明了,操作简单容易。软件具有的人工智能算法原理要简单并且运行要快速。游戏是需要快速反应的,手机处理器的频率直接要求需要使用简单实用的智能算法。在设计本游戏时考虑到用户需要的是一个操作简便,界面简单的游戏软件。操作人机部分,要考虑到此软件是在手机上运行,手机的很多性能都不如电脑,因此在人工智能算法的设计上应该在尽可能的缩短系统搜索时间的同时还要保证要有一定的智能水平,不然对玩家来说没有一定的挑战性,也就缺少了吸引力。此外,通过软件功能的分析,根据五子棋爱好者的需求,得出还有如下需求信总具有重新开始功能的;具有悔棋功能;具有退出游戏的功能;具有判断胜负的功能;本次设计主要是设计一个能够在ANDROID手机上运行的五子棋游戏。根据一般玩手机游戏的流程,玩家一般是先进入一个欢迎界面,进行选择操作后再进入游戏的主界面开始游戏。本游戏软件也将遵循该流程,玩家打开游戏软件后将先进入欢迎界面,选择游戏模式,然后进入游戏的主界面开始游戏。进入游戏的主界面后,系统将根据玩家所选的游戏模式给玩家设置对手玩家。游戏过程中,玩家也可以进行悔棋等操作。42功能需求五子棋分为五个模块开始游戏、游戏说明、作者介绍、游戏设置、退出游戏。1开始游戏点击进入游戏。2游戏说明五子棋游戏规则的说明及操作说明。3作者介绍纪录作者姓名,班级,学号,邮箱。4游戏设置难度设置简单,困难。5退出游戏退出游戏。43性能需求1硬件环境PC2软件环境WINDOWSXP、ANDROID21以上44可行性研究441经济可行性该软件为免费软件,不收取任何费用。开发周期相对较短,能有效的利用开发人员。442技术可行性运用ANDROID智能手机的平台,开发人员具有一定的ANDROID知识,熟悉的算法基础。智能手机拥有扎实的硬件平台以及较好的操作系统;该游戏能在手机上正常运行;操作简单,方便,为游戏玩家提供了一个良好的游戏平台。5概要设计51系统功能结构及流程图根据系统功能的要求,可以将系统分解成几个功能模块来分别设计。系统结构如图51所示图51系统结构图数据存储设计根据系统所做的需求分析和系统设计,SHAREDPREFERENCES为最有效的存储方式。它用来存储一些简单配置信息的一种机制,比SQLITE更高效。有时应用程序有少量的数据需要保存,而且这些数据的格式很简单,都是普通的值,比如应用程序的各种配置信息如是否打开音效,是否使用振动效果等,小游戏的玩家积分等,对于这种数据,就可以采用SHAREDPREFERENCES保存的数据并且它主要是类似于配置信息格式的数据,因此它保存的数据主要是简单类型的KEYVALUE对。ANDROID五子棋开始游戏游戏说明作者介绍游戏设置退出游戏6详细设计系统详细设计是对每个模块功能的具体设计,包括界面、功能模块和设计要点等内容。61主界面详细设计游戏主界面如图所示图游戏主界面点击开始游戏时,可直接进入游戏;游戏简介为相关的介绍以及游戏操作;关于作者记录作者信息;游戏设置为设置游戏难度;退出游戏为退出整个游戏。主要就是界面之间的跳转,代码比较简单PUBLICCLASSACCESSACTIVITYEXTENDSACTIVITYPRIVATEBUTTONBTN_STARTPRIVATEBUTTONBTN_TUICHUPRIVATEBUTTONBTN_DIFFPRIVATEBUTTONBTN_ABOUTGAMEPRIVATEBUTTONBTN_ABOUTHERPUBLICVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATE/隐藏标题栏/REQUESTWINDOWFEATUREWINDOWFEATURE_NO_TITLE/设置界面视图把主页面显示出来SETCONTENTVIEWRLAYOUTACCESSBTN_TUICHUBUTTONFINDVIEWBYIDRIDBTN_TUICHUBTN_STARTBUTTONFINDVIEWBYIDRIDSTARTBTN_DIFFBUTTONFINDVIEWBYIDRIDDIFFICULTYBTN_ABOUTGAMEBUTTONFINDVIEWBYIDRIDABOUTGAMEBTN_ABOUTHERBUTTONFINDVIEWBYIDRIDABOUTAUTHORBTN_STARTSETONCLICKLISTENERNEWONCLICKLISTENEROVERRIDEPUBLICVOIDONCLICKVIEWV/TODOAUTOGENERATEDMETHODSTUBINTENTINTENTNEWINTENTACCESSACTIVITYTHIS,GOBANGCLASSINTENTPUTEXTRA“DEGREE“,1STARTACTIVITYINTENTBTN_ABOUTGAMESETONCLICKLISTENERNEWONCLICKLISTENEROVERRIDEPUBLICVOIDONCLICKVIEWV/TODOAUTOGENERATEDMETHODSTUBSTARTACTIVITYNEWINTENTACCESSACTIVITYTHIS,ABOUTGAMEACTIVITYCLASSBTN_ABOUTHERSETONCLICKLISTENERNEWONCLICKLISTENEROVERRIDEPUBLICVOIDONCLICKVIEWV/TODOAUTOGENERATEDMETHODSTUBSTARTACTIVITYNEWINTENTACCESSACTIVITYTHIS,ABOUTAUTHORCLASSBTN_DIFFSETONCLICKLISTENERNEWONCLICKLISTENEROVERRIDEPUBLICVOIDONCLICKVIEWV/TODOAUTOGENERATEDMETHODSTUBSTARTACTIVITYNEWINTENTACCESSACTIVITYTHIS,DIFFACTIVITYCLASSBTN_TUICHUSETONCLICKLISTENERNEWONCLICKLISTENEROVERRIDEPUBLICVOIDONCLICKVIEWVSHOWEXITGAMEALERT/结束当前ACTIVITYPRIVATEVOIDSHOWEXITGAMEALERT/FINALALERTDIALOGDLGNEWALERTDIALOGBUILDERTHISCREATEFINALBUILDERDLGNEWALERTDIALOGBUILDERTHISDLGSETTITLE“温馨提示“DLGSETMESSAGE“确定退出吗“DLGSETICONRDRAWABLEIC_LAUNCHERDLGSETPOSITIVEBUTTON“确定“,NEWDIALOGINTERFACEONCLICKLISTENERPUBLICVOIDONCLICKDIALOGINTERFACEDIALOG,INTWHICHBUTTONSETRESULTRESULT_OK/确定按钮事件SYSTEMEXIT0DLGSETN

温馨提示

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

评论

0/150

提交评论