毕业论文-基于android的中国象棋游戏设计_第1页
毕业论文-基于android的中国象棋游戏设计_第2页
毕业论文-基于android的中国象棋游戏设计_第3页
毕业论文-基于android的中国象棋游戏设计_第4页
毕业论文-基于android的中国象棋游戏设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

上海电力学院本科毕业设计(论文)题目基于ANDROID的中国象棋游戏的设计院系计算机与信息工程学院专业年级2008电子科学与技术学生姓名丁晓亮学号20082614指导教师金一鸣2012年06月14日基于ANDROID的中国象棋游戏的设计摘要随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问WEB网站并处理各种各样的业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。而ANDROID是开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,ANDROID平台具有无限的吸引力。本文就在分析讨论ANDROID手机软件开发技术原理的基础上,为用户开发出基于ANDROID平台的中国象棋游戏的软件。通过对ANDROID系统架构和应用开发进行初步研究,设计一款中国象棋游戏。在对系统进行详细需求分析的基础上,确定了系统的功能和性能要求,对游戏的菜单界面、屏幕绘制、时间控制、布局算法、音效和动画等进行了设计,并最终实现了一个界面友好、高效稳定和富有娱乐性的手机益智游戏。关键字ANDROID;中国象棋;智能手机平台THEDESIGNOFCHINESECHESSGAMEBASEDONANDROIDABSTRACTWITHTHERAPIDPROLIFERATIONOFSMARTPHONES,SMARTPHONEOPERATINGSYSTEMMARKET,WINDANDWATERINORDERFORSMARTPHONEUSERSTOCHECKTHEINTERNETANYTIME,ANYWHERESERVICESPROVIDEDANEFFICIENTWAYTOEXPANDTHEFUNCTIONOFTHESYSTEMWILLBEAPPLIEDTOTHEMOBILEPHONETERMINAL,THEMOBILEPHONETOINTERNETACCESSVIAMOBILENETWORKS,ANDVARIETYOFWEBSITESANDPROCESSBUSINESSTHEREFORE,THESMARTPHONEAPPLICATIONSANDTHENEEDFORTHESERVICEWILLHAVEBROADPROSPECTSFORDEVELOPMENTANDROIDSBIGGESTFEATUREISITSOPENARCHITECTURE,NOTONLYHASAVERYGOODDEVELOPMENTANDDEBUGGINGENVIRONMENT,BUTALSOSUPPORTSAVARIETYOFSCALABLEUSEREXPERIENCE,INCLUDINGRICHGRAPHICALCOMPONENTS,MULTIMEDIASUPPORT,ANDPOWERFULBROWSERTHEREFORE,FORSOFTWAREPROFESSIONALSIS,ANDROIDPLATFORMHASUNLIMITEDAPPEALINTHISPAPER,THEANALYSISANDDISCUSSIONANDROIDMOBILEPHONESOFTWAREDEVELOPMENTTECHNOLOGYONTHEBASISOFTHEPRINCIPLE,DEVELOPEDTOPROVIDEUSERSWITHBETTERPLATFORMTOTHECHINESECHESSBASEDONANDROIDMETEOROLOGICALSOFTWARETHROUGHTOTHEANDROIDSYSTEMSTRUCTUREANDAPPLICATIONDEVELOPMENTFORPRELIMINARYRESEARCH,DESIGNEDACHINESECHESSGAMEINTHESYSTEMBASEDONTHEANALYSISOFTHEDETAILEDREQUIREMENTS,MADESURETHESYSTEMFUNCTIONANDPERFORMANCEREQUIREMENTS,TOTHEGAMEMENUINTERFACE,ANDTHESCREENRENDERING,TIMECONTROL,LAYOUTALGORITHM,SOUNDEFFECTSANDANIMATION,DESIGN,ANDFINALLYACHIEVEDAFRIENDLYINTERFACE,HIGHEFFICIENCYANDSTABILITYANDENTERTAININGMOBILEPHONEPUZZLESKEYWORDSANDROID;CHINESECHESS;SMARTPHONEPLATFORM目录1引言111研究背景112研究目的和意义213论文结构安排32ANDROID操作系统简介321智能手机系统现状322ANDROID的功能特征523ANDROID系统的特点724ANDROID的体系结构73ANDROID开发环境931操作系统及所需软件1032ANDROID开发环境及变量配置10321安装配置JDK610322安装配置SDK1233ECLIPSE的设置1234ANDROID版本配置134应用程序的总体设计1341详细规则1342胜负判定方法1443棋子行走规则155功能的设计与实现1851各种相关类的介绍1952过程中的逻辑处理2153棋子走法流程图2354游戏模拟运行2655改进和优化296结论30谢辞31参考文献32附录331引言ANDROID是GOOGLE于2007年11月05日宣布的基于LINUX平台的开源移动操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(SOFTWARESTACK,又名软件叠层)的架构,主要分为三部分。底层以LINUX内核工作为基础,ANDROID系统效果图由C语言开发,只提供基本功能;中间层包括函数库LIBRARY和虚拟机VIRTUALMACHINE,由C开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以JAVA作为编写程序的一部分。不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。GOOGLE通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望能借助其来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统1。11研究背景随着移动通信的发展以及互联网向移动终端的普及,网络和用户对移动终端的要求越来越高,而SYMBIAN,WINDOWSMOBILE,PALMOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开放性很强的平台2。ANDROID是一个基于LINUX核心KERNEL的开放手机平台系统。与WINDOWSMOBILE、SYMBIAN等手机系统处在同一级别。对于设备制造商来说,ANDROID是一个免费的平台。ANDROID系统让设备制造商免除每出一台手机,就得被手机系统厂商赚一些钱的情况。对硬体开发厂商来说,ANDROID也是个开放的平台3。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机系统厂商的限制。对于手持装置的开发者来说,ANDROID是个先进的平台。平台上的应用程式可相容于各种型号的ANDROID手机,免去为各种不同手机机型开发的困扰。ANDROID平台支援各种先进的网路、绘图、3D处理能力,可以用来提供更好的使用者体验。对于使用者来说,ANDROID是一个用于手机的系统。使用者只要先申请一个免费的GOOGLE帐户,当使用者想换一台手机时,就可以在不同厂牌,同样使用ANDROID系统平台的手机之间选择,并且很容易地将如联络簿等个人资料转换到新手机上4。ANDROID在LINUX核心的基础上,提供了各种合用的函数库,和一个完整的应用程式框架。并采用较符合商用限制的APACHE版权。在LINUX核心的基础上提供GOOGLE自制的应用程式运行环境称作DALVIK,与SUN的J2ME不同,并提供基于ECLIPSE整合开发环境IDE的免费、跨平台WINDOWS、MACOSX、LINUX开发工具SDK,便于应用程式开发者学习、使用。免费、熟悉的跨平台开发工具,让具备一些物件导向观念,或视窗程式开发经验的开发者,能在一定时间内上手5。从不同角度来说,ANDROID代表着一个崭新的开放原始码系统平台、一个友善的免费应用程式开发环境、一个与世界各地的程式开发者,站在相同起跑点上的公平竞争机会。而中国象棋作为一款经典的益智游戏,一直以来都被众多的游戏爱好者喜欢,这个游戏,男女老少皆宜。游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人的思维逻辑能力得到锻炼6。12研究目的和意义ANDROID这个平台对于GOOGLE对于大众的意义不在于手机本身,ANDROID存在的目的也不在于挑起手机操作系统之间的混战,而在于推动移动互联网产业链的迅速成型。具有开源特性的ANDROID平台打破了之前SYMBIAN、WINDOWSMOBILE等操作系统收取高额的授权费用的模式,使得只能手机成本大大的降低;而正是由于它开发源代码,使得手机产生更多个性化的应用。同时,合作方能够在这里得到利润或者创造价值,手机软件行业得到维护协调发展。以GOOGLE、苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正是GOOGLE推出ANDROID平台的意义,也是ANDROID平台存在的使命。而作为ANDROID平台成员之一的中国移动也投资成立了一家通讯公司,专门从事GOOGLE手机软件的应用以及本地化的软件的开发,比如将在GOOGLE手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。国内众多企业也将眼光投入到ANDROID上面,并启动了相关的计划来深入的理解并发展ANDROID。更多的手机软件开发企业已经或者筹备着将公司进行转型,从其方向的开发转向到ANDROID的开发7。综上所述,无论是在国内还是在国外,ANDROID平台对手机软件行业和移动手机平台将发挥极大地推动作用,而在未来的几年或者一段时间内,ANDROID将越发的凸显自己的重要性。基于此,我们有必要通过进行相关的研究来了解ANDROID平台,来了解开发ANDROID的那一大批人的先进的理念和思想,并通过这些来了解手机软件行业,进而了解未来无移动互联网的发展趋势,从而更好的适应时代的需要8。本课题的目的在于掌握JAVA手机应用开发技术和移动软件平台开发技术。在以JAVA语言为基础,结合ANDROID移动开发平台,并利用ANDROID提供的SDK,完成在ANDROID平台上运行的中国象棋软件。本课题的意义在于通过开发一款简易中国象棋手机应用软件,可以熟练应用ANDROID平台提供的应用程序接口,掌握ANDROID平台上的各种应用。13论文结构安排整篇论文共分为六个部分,其主要内容安排如下第1章引言。介绍论文的研究背景、目的和意义。包括课题的背景资料简介、国内外研究现状和发展趋势、深入地介绍了课题研究的价值以及对未来的影响。第2章ANDROID操作系统简介。这部分主要是介绍了智能手机系统现状、ANDROID的功能特征、ANDROID系统的特点以及ANDROID的体系结构。第3章ANDROID开发环境。这部分主要介绍了ECLIPSE和ANDROID开发环境的搭建。第4章应用程序的总体设计。这部分主要介绍了中国象棋的详细规则及胜负判定方法和棋子的行走规则。第5章功能的设计与实现。这部分主要介绍了游戏的界面、游戏中的逻辑处理以及该游戏今后的改进和优化。第6章结论。对整篇论文加以总结与回顾以及对未来的展望。2ANDROID操作系统简介ANDROID是基于LINUX内核的操作系统,早期由GOOGLE开发,后由开放手机联盟开发。它采用了软件堆层的架构,主要分为三部分。底层以LINUX内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以JAVA作为编写程序的一部分。另外,为了推广此技术,GOOGLE和其它几十个手机公司建立了开放手机联盟。目前最新版本为ANDROID409。21智能手机系统现状手机操作系统是时下最火热的话题之一,大家都在追随不断新出的操作系统。虽然它的火热程度在持续高涨,但是手机操作系统的发展并不是那么长久。在2002年之前,并没有严格意义上的手机操作系统,因为能完成通话功能的手机都是由厂家自己做芯片,然后配上相应的软件就可以完成。不过此后,手机的品种越来越多,发展也越来越快,随着人们对手机的需求也越来越大,智能手机和手机操作系统就应运而生了10。目前热门的手机操作系统主要有5种(1)塞班(SYMBIAN)昔日的行业大哥,这个日渐落寞的操作系统,曾经红遍天下。但是随着近些年苹果和谷歌的发力,一直在走下坡路,塞班的市场份额已经降到了谷底。有统计显示,到去年年底,塞班系统的全球市场占有量仅有221。虽然基本的常用软件非常的丰富,但是塞班系统弊病不断,在更激烈的竞争中败下阵来。随着塞班的沦陷,诺基亚也沦落了。曾经,诺基亚在芬兰几乎是国家的象征。现在,为了改变颓势,又需要寻求突围了。代表手机诺基亚,索尼爱立信、LG(2)安卓(ANDROID)2008年,谷歌发布了ANDROID操作系统,从此智能手机操作系统界不再安静。2009年,原来引用塞班平台的厂商,比如LG、索尼爱立信等纷纷退出塞班平台,投入ANDROID领域。不久,ANDROID系统就取代了塞班成为智能手机操作系统的霸主。在2011年的第一季度,ANDROID在全球的市场份额就已经超过了塞班,位居世界第一。到了2011年底,ANDROID占据了全球525的份额。ANDROID手机的软件非常的丰富,而且基本都是免费的,可以通过多个应用商店下载。另外,ANDROID的本地化也做得很好,刷机非常方便11。代表手机三星,HTC,小米,索尼爱立信、魅族、摩托罗拉,中兴,华为等。(3)IOS这么多操作系统中,可以说苹果的使用体验是最好的。ANDROID虽然是霸主地位,但是系统却没有IOS完美。IOS不是开放的系统,它的很多应用多需要付费才能使用。(4)WINDOWSPHONEWINDOWSPHONE发布于2010年10月,作为微软移动的筹码,正式与ANDROID和IOS竞争。2011年2月,诺基亚与微软合作,试图挽回失去的大局。现在已经更新至WINDOWSPHONE76了,大家十分期待的WINDOWSPHONE8也将在今年第四季度发布。尽管如此,WINDOWSPHONE可以说是不够成熟的,在中国,行货手机非常少,而且本地化做得也不是特别好。如果有一天,WINDOWSPHONE大面积在中国开卖,相信市场一定会有的,毕竟现在苹果和安卓已经满大街都是了,再加上诺基亚的“砸核桃”功能,一定会引来一阵高潮。代表手机三星,HTC,LG,中兴等(5)黑莓(BLACKBERRY)黑莓在欧美市场是第一商务智能手机,引入中国后,主要面向政企集团客户,苏宁是独家的销售渠道,不过,国内市场有很多渠道可以买到水货。从市场来看,黑莓在中国并没有那么受欢迎,软件资源也不是那么丰富。总结移动互联网在一轮又一轮的掀起高潮,这中间智能手机操作系统起到了至关重要的作用。从目前市场来看,主要的竞争还是在于微软、苹果和谷歌之间,三大操作系统可谓是三足鼎立。过不了多久,WINDOWSPHONE8就要出来了,相信到时候市场又会有很大的不同,坐观其变。手机应用开发中的JAVA技术有如下特点在信息社会中手机及其他无线设备越来越多的走进普通百姓的工作和生活随着信息网络化的不断进展手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端首先传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除有了错误也不能更新、修改若要增加新功能必须另换一部手机。其次传统手机访问互联网是通过WAPWIRELESSAPPLICATIONPROTOCAL所有网络资源必须接通网络才能在线访问非常耗时、费用亦很高。而JAVA技术在无线应用方面的优势非常明显1应用程序可按需下载而不是购买由硬件商提供的套件可升级空间大。2JAVA技术提供了一个类库它使的应用,开发商可以创建更为直觉、丰富的用户界面。3JAVA技术使网络带宽的应用更为有效因为应用程序可以下载到器件上并在本地运行仅仅是在连接到服务器时才会占用网络带宽12。基于以上分析JAVA手机将是未来手机的发展方向是业界的热点。本次设计正是基于当前热门的ANDROID手机应用开发,也就是采用JAVA语言编程开发。22ANDROID的功能特征L应用程序架构在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。2DALVIK虚拟机器在ANDROID平台上所使用JAVA虚拟机,不是SIM公司的标准JAVA虚拟机,而是使用GOOGLE自主开发的代号为DALVIK的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。3集成的浏览器集成的浏览器是ANDROID内建的浏览器,是以WEBKIT的浏览引擎为基础所开发成的。WEDKIT是一个开源浏览器网页排版引擎,目前使用WEBKIT引擎的浏览器主要有SAFARI,MIDORI,EPIPHANY等。配合ANDROID手机的功能,可以在浏览网页时,达到更好的效果,例如局部性的缩放网页上的资讯、触控式的操作等效果。4优化的绘图能力在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,ANDROID提供了一套特有的类库SGL而在3D方面则是使用OPENGLES10OPENGLFOREMBEDDEDSYSTEMS规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。5SQLITE数据库SQLITE提供结构化的数据存取。SQLITE是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。它能够支持WINDOWS/LINUX/UNIX等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP,JAVA等,还有ODBC接口,同样比起MYSQL,POSTGRESQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLITE也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。6多媒体的支持能力主要用于播放媒体文件。这同时包括对音频如播放MP3或其他音乐文件等和视频如播放从网上下载的视频的支持,并支持“播放URI地址”NOTEURI即是统一资源识别地址模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如JPG、PNG、GIF等格式。7GSM技术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应用程序时可以突出的特点之一。9GPSGLOBALPOSITIONINGSYSTEM,即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现,也是在开发ANDROID应用程序是可以突出的特点之一13。23ANDROID系统的特点ANDROID系统具有如下5个特点1开放性。GOOGLE与开放手机联盟合作开发了ANDROID,GOOGLE通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。2应用程序无界限。ANDROID上的应用程序可以通过标准API(APPLICATIONPROGRAMMINGINTERFACE,应用程序编程接口)访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。3应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。4应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML、JAVASCRIPT和样式表,还可以通过WEBVIEW显示网络内容。5应用程序可以并行运行。ANDROID是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引动注意14。每个ANDROID应用程序都存在于它自己的世界之中默认情况下,每个应用程序均运行于它自己的LINUX进程中。当应用程序中的任意代码开始执行时,ANDROID启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。每个进程都运行于自己的JAVA虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。默认情况下,每个应用程序均被赋予一个唯一的LINUX用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个LINUX进程,以及同一个虚拟机15。24ANDROID的体系结构ANDROID平台是一组面向移动设备的软件包,它包含了一个操作系统、中间件和关键应用程序。开发人员可以使用ANDROIDSDK软件开发工具包为这个平台创造应用程序。应用程序使用JAVA语言编写并在DALVIK之内运行。DALVIK是一款量身定制的虚拟机,它专为嵌入式应用设计,运行在LINUX内核上层16。1ANDROID架构如下图21显示了ANDROID操作系统的主要组件。图21ANDROID操作系统的主要组件2LINUX内核ANDROID依赖LINUX26版,提供核心系统服务安全、内存管理、进程管理、网络组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。3应用框架ANDROID的核心应用程序就是依赖框架层次API开发的,程序员们可以充分使用这些API。应用架构设计的初衷是简化组件复用机制;任何应用都能发布自己的功能,这些功能又可以被任何其他应用使用(当然要受来自框架的强制安全规范的约束)。和复用机制相同,框架允许组件的更换17。4C/C库ANDROID包含一套C/C库,ANDROID系统的各式组件都在使用。这些功能通过ANDROID应用框架暴露给开发人员。ANDROID的核心类库提供JAVA类库所提供的绝大部分功能。每个ANDROID应用都运行在自己的进程上,享有DALVIK虚拟机为它分配的专有实例。为了支持多个虚拟机在同一个设备上高效运行,DALVIK被改写过。DALVIK虚拟机执行的是DALVIK格式的可执行文件(DEX)该格式经过优化,以降低内存耗用到最低。JAVA编译器将JAVA源文件转为CLASS文件,CLASS文件又被内置的DX工具转化为DEX格式文件,这种文件在DALVIK虚拟机上注册并运行。在一些底层功能比如线程和低内存管理方面,DALVIK虚拟机是依赖LINUX内核的。5应用的构成对于一个ANDROID应用程序来说,是由ACTIVITY、INTENTRECEIVER、SERVICE、CONTENTPROVIDER四部分组成,但并不是每一个ANDROID应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件ANDROIDMANIFESTXML中进行配置。这个配置文件是每个ANDROID应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等18。ANDROID应用的构成和工作流程如图22INTERNETRECEIVERACTIVITY外部事件INTERNET通过INTERNETRECEIVER对外部事件进行响应CONTENTPROVIDERACTIVITY存储设备通过INTERNET实现活动之间的转换通过CONTENTPROVIDER进行数据存储SERVICEBINDER通过BINDER对SERVICE进行绑定图22ANDROID的构成3ANDROID开发环境ECLIPSE是替代IBMVISUALAGEFORJAVA的下一代IDE开发环境,但它未来的目标不仅仅是成为专门开发JAVA程序的IDE环境,根据ECLIPSE的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。目前,ECLIPSE可以提供C语言开发的功能插件。更可贵的是,ECLIPSE是一个开放源代码的项目,任何人都可以下载ECLIPSE的源代码,并且在此基础上开发自己的功能插件。也就是说未来只要有人需要,就会有建立在ECLIPSE之上的COBOL,PERL,PYTHON等语言的开发插件出现。同时可以通过开发新的插件扩展现有插件的功能,比如再现有JAVA开发环境中加入TOMCAT服务插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是ECLIPSE的潜力所在19。31操作系统及所需软件编写ANDROID的应用程序,需要一套个人电脑系统。至于操作系统的部份,几个主流操作系统都有支持。支持的操作系统如下WINDOWSXP、VISTA或WINDOWS7。在开始搭建ANDROID的开发环境之前,需要准备的软件包如下(1)JDK6JDK6U21WINDOWSI586EXE(2)ECLIPSEECLIPSEJAVAGALILEOSR2WIN32ZIP(3)ANDROIDSDK16ANDROIDSDKWINDOWS16_R1ZIP(4)ANDROIDSDKSETUPANDROIDSDK_R06WINDOWSZIP(5)ADT097ADT097ZIP32ANDROID开发环境及变量配置ECLIPSE设计的美妙之处,在于所有东西都是外挂,除了底层的核心以外。这种外挂设计让ECLIPSE具备强大扩充性,但更重要的是,此平台提供一个定义明确的机制,让各种外挂程序共通合作(透过延伸点EXTENSIONPOINTS)与贡献(CONTRIBUTIONS),因此新功能可以轻易且无缝地加入平台20。321安装配置JDK6下载后安装是下的解压包那就解压到某目录,例如解压到是CJAVAJDK160_20;右键点击我的电脑属性高级,点击下面的环境变量,在下面的“系统变量”处选择新建在变量名处输入JAVA_HOME变量值中输入刚才的目录,比如我的是在目录CJAVAJDK160_20下;效果如图31所示图31进入环境变量确定后再新建一个变量名为CLASSPATH,变量值为JAVA_HOME/LIB/RTJARJAVA_HOME/LIB/TOOLSJAR,确定后找到PATH的变量,双击或点击编辑,在变量值最前面加上JAVA_HOME/TOOLS注意里面的是,确定、确定、确定后即可。具体如下图32所示图32环境变量的设置接着在“开始运行”,输入CMD,然后在命令行提示符中输入JAVAVERSION,如果能够看到JAVAVERSION“160_20信息;就表示JDK安装成功。322安装配置SDK将下载ANDROIDSDKWINDOWS16_R1ZIP解压缩到CANDROIDSDKWINDOWS16_R1目录中。新建一个“系统变量”,在“变量名”中填ANDROID_HOME,在“变量值”加填CANDROIDSDKWINDOWS16_R1。“编辑”PATH变量,在“变量值”后面加上ANDROID_HOMETOOLS。这样,ANDROIDSDK16就安装好了。“开始运行”,输入CMD,然后在命令行提示符中输入ANDROIDHELP,应该能够看到帮助信息;ANDROIDSDK16安装成功。33ECLIPSE的设置将下载到的ECLIPSE解压缩到CECLIPSE,然后进入这个文件夹,双击ECLIPSEEXE,启动ECLIPSE。关联ADNROIDSDK菜单“WINDOWSPREFERENCES”,打开PREFERENCES对话框,点击ANDROID,在右侧的ANDROIDREFERENCE中,点SDKLOCATION文本框右侧的BROWSE按钮,找到CANDROIDSDKWINDOWS16_R1,“确定”。安装ADT菜单“HELPINSTALLNEWSOFTWARE”,打开INSTALL对话框,点击ADD按钮,添加站点(ADDSITE),在NAME中填ADT,在LOCATION中填HTTPS/DLSSLGOOGLECOM/ANDROID/ECLIPSE/。然后,下载安装ADT。第四步,解压ANDROIDSDKSETUP,下载更新ANDROIDSDK20和21将下载到的ANDROIDSDK_R04WINDOWSZIP解压缩到CANDROIDSDKWINDOWS,然后进入这个文件夹,双击SDKSETUPEXE,启动ANDROIDSDKANDAVDMANAGER,选中左侧SETTINGS项,然后在右侧面板选中FORCEHTTPS/SOURCESTOBEFETCHEDUSINGHTTP/,然后选择SAVE/将该棋子设为选中的棋子FOCUSTRUE/标记当前有选中的棋子STARTIISTARTJJELSE/之前选中过棋子IFQIZIIJ0/点击的位置有棋子IFQIZIIJ7/如果是自己的棋子SELECTQIZIQIZIIJ/将该棋子设为选中的棋子STARTIISTARTJJELSE/如果是对方的棋子ENDIIENDJJ/保存该点BOOLEANCANMOVEGUIZECANMOVEQIZI,STARTI,STARTJ,ENDI,ENDJIFCANMOVE/如果可以移动过去CAIPANFALSE/不让玩家走了IFQIZIENDIENDJ1|QIZIENDIENDJ8/如果是“帅”或“将”THISSUCCESS/胜利了ELSEIFACTIVITYISSOUNDGOSTART/播放下棋声音QIZIENDIENDJQIZISTARTISTARTJ/移动棋子QIZISTARTISTARTJ0/将原来处设空STARTI1STARTJ1ENDI1ENDJ1/还原保存点FOCUSFALSE/标记当前没有选中棋子CHESSMOVECMGUIZESEARCHAGOODMOVEQIZI/根据当前局势查询一个最好的走法IFACTIVITYISSOUNDGOSTART/播放下棋声音QIZICMTOXCMTOYQIZICMFROMXCMFROMY/移动棋子QIZICMFROMXCMFROMY0CAIPANTRUE/恢复玩家响应/END点击的位置有棋子ELSE/如果点击的位置没有棋子ENDIIENDJJBOOLEANCANMOVEGUIZECANMOVEQIZI,STARTI,STARTJ,ENDI,ENDJ/查看是否可走IFCANMOVE/如果可以移动CAIPANFALSE/不让玩家走了IFACTIVITYISSOUNDGOSTART/播放下棋声音QIZIENDIENDJQIZISTARTISTARTJ/移动棋子QIZISTARTISTARTJ0/将原来处置空STARTI1STARTJ1ENDI1ENDJ1/还原保存点FOCUSFALSE/标志位设FALSECHESSMOVECMGUIZESEARCHAGOODMOVEQIZI/得到一步走法IFQIZICMTOXCMTOY8/电脑吃了您的将STATUS2/切换游戏状态为失败IFACTIVITYISSOUND/需要播放声音时GOSTART/播放下棋声音QIZICMTOXCMTOYQIZICMFROMXCMFROMY/移动棋子QIZICMFROMXCMFROMY0CAIPANTRUE/恢复玩家响应/END之前选中过棋子/END点击的位置在棋盘内时/END游戏中时RETURNSUPERONTOUCHEVENTEVENTGUIZE类是对这些规则进行封装,当玩家要走某步棋的时候需要通过该类判断是否可走。该类是象棋的规则类,其他类通过调用CANMOVE方法给出起始位置与结束置,其他类通过调用SEARCHAGOODMOVE方法得到最当然棋局最好的走法,而其中的ALLPOSSIBLEMOVES方法得到的是当前棋局的所有的走法。游戏的策划是游戏开发过和中的最重要的一个开发环节,只有写好了游戏策划才能继续游戏开发,游戏策划是游戏开发的一个流程,把策划写好了就可以近照策划一步步进行开发,可见策划的重要性。到此本游戏的功能已经基本开发完成,但是仍有很多方面需要改进和优化。53棋子走法流程图图54棋盘位置流程图如图54是棋盘形状图,通过经X,Y轴坐标的判断棋盘的大小,棋盘的落子位置先画出棋盘横线,再计算棋盘的竖线,横线和竖线交叉的位置就是棋子的落点。这样整个棋盘形状大小就出来了。棋盘的位置就是通过这种坐标实现的。游戏开始时各个棋子(车、马、炮、象、士,将、帅、兵、卒)它们的开始的位置都确定了,通过坐标,机器可以准确的将棋子移到指定的位置,人机对弈时,人点击棋子进行移动时,机器通过坐标计算同时进行移动到人指定的位置,通过坐标可以计算出棋盘每个落子点的位置,再根据规则类计算棋子落点是否符合象棋规则,如果不符合,就不能进行移动,还要注意特别的捌腿事件。符合象棋走法规则也不一定能下,还要注意象、马捌腿,象心等关键地方。没有违反这些规则才能下到指定的地点。图55棋子移动流程图如图55为人行走时棋子移动流程图,本游戏为人机对弈的象棋游戏,本图是人走的流程图,人行走是用鼠键点击的方式,先用鼠标点击要走的棋子获取棋子对象,按下鼠标拖到终点位置,由机器检测通坐标确定终点位置,再把棋子由起点位置移动到终点位置。下一步由机器行走。图56获取棋子流程图如图56是人或者机器移动棋子时,获取棋子对象,使棋盘释放棋子对象,再将释放传给棋盘,释放响应事件。图57规则流程图如图57是象棋规则图,第一步检查覆盖区域是否包含棋点,没有放回原处,如果有再判断该点上否有棋子,如果没有棋子并且符合象棋规则就放在棋点上,不符合规则放回原点,如果该棋点有棋子的话,再判断两棋子是否同一方,是同一方,该棋子放回原处,如果不同,符合规则就放到棋点上并吃掉对方的棋子,如果不符合规则放回原处。54游戏模拟运行如图58运行程序进入开机动画界面,也就是游戏欢迎页面左上角是国际象棋的标志,右边是“中国象棋之博弈的艺术”,还有两张图片和一个菜单按纽,点击菜单进入菜单栏。这是一个登陆界面,介绍这是一个象棋游戏,便让人知道这是一个象棋游戏,挑战自己,集中你的智慧,来享受博弈的乐趣,会勾起人们想下棋的欲望,被象棋游戏吸引,而且可以单人下,在火车上休闲时都可以,特别一个人也可以下,避免传统象棋游戏非要两个人下的弊端。可以让人在任何时间任何地点都可以下棋放松、休闲。图58开机动画界面如图59菜单页面如图所示有四个按钮开始游戏、关闭声音、帮助、退出游戏点击开始游戏会进入游戏主界面,就可以实现人机对弈了。关闭声音是控制声音的播放,由关闭声音可以切换到开机音乐,点击帮助按钮可以进入帮助页面,退出游戏按钮就是退出游戏。图59菜单页面如图510是开始游戏界面,就可以开始人机对弈了,黑方是机器一方,红方是自己这一方,用鼠标点击方式进下棋,然后电脑自己反应走下一步。左下角和右下角有一个指针,当指向黑方走时,机器走一步棋,当指向红方的时候,人走一步棋。还有左右下角分别记录了黑方红方总共下棋的时间,声音按钮控制声音的播放,退出按钮退出游戏。图510游戏界面如图511是游戏胜利界面,显示的是红方胜利界面,黑方胜利界面同样如此,只不过将红将改为黑帅。图544胜利界面帮助页面介绍玩法如图512图512帮助界面帮助界面如图所示,介绍中国象棋游戏的玩法,还有一过“返回”按钮,点击它返回菜单页面。55改进和优化阵营选择一种更人性化的设计是正式进入游戏之前,让玩家选择此次游戏阵营的选择,即选择红方或者黑方棋子。成绩的储存与排行该游戏中如果能够加上游戏的排行与储存将更人性化。估值算法的优化因为本游戏侧重点是ANDROID技术的开发应用并非算法的介绍,所以规则中的最优走法的方法只是从所有合法的走法中任意抽取的一个移动棋子,在正式的人机对弈中需要对所有的走法进行估值计算,取出对自己最有利的走法,可以对自行开发估计算法中的规则类的SEARCHAGOODMOVE方法进行改进。作为结合了最具活力的LINUX一与JAVA两大开发语言优点于一身的ANDROID,虽然中长期拥有光明的前景,但短期内依然存在诸多开发的挑战,特别是与传统的LINUX与JAVA开发的兼容性还很欠缺,并且在程序安全性和多任务处理方面还存在不足,这对从业者来说需要引起足够的重视,力争先评估自己的开发应用需求,再衡量ANDROID的优势和不足,然后根据自己的实际需要扬长避短。不管如何,ANDROID作为一款开放性嵌入式操作系统,具有较强的自主开发延伸性,无论是硬件厂商还是软件厂商或是系统集成商,都可以根据自身需要进行特色鲜明的产品开发,并确保自己开发结果的唯一性,这恰恰适合正在不断从中国制造向中国创造转型中的中国电子产业,因此,如何学好并利用好ANDROID这样一款面向庞大终端消费市场的操作系统就显得极为重要。6结论本程序设计实现了手机上以ANDROID为平台的棋牌类游戏的开发,人机对弈运行的方式由程序进行控制,具有一定的可玩性和趣味性。经过了细心的调试和排错解决了绝大部分的问题。这款游戏作为我的毕业设计,是本人目前做过的最有意义的程序。大学四年做过很多课程设计,大多规模很小。在数据库、各种应用软件和游戏中,我仍觉得对游戏的设计有极大的热情。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试、修改后,能最终看到成品,感到无比自豪。学习ANDROID的困难远远超出了预期的想象,在设计初期,为了解决人机对弈问题花费了数天的时间。很多相关的技术,如需要使用到的线程、GAME包的新功能、高级、低级图形界面的使用、贴图等,每一项都需要花一定的时间去掌握和熟悉。更为困难的是,ANDROID作为一种刚出现仅几年的新技术,国内的参考资料非常少,仅有的几本也停留在简单的介绍阶段。幸运的是,互联网上有那么多无私的人给了我很大的帮助。通过本游戏的开发,达到了学习JAVA技术和熟悉软件开发流程,熟悉ANDROID应用程序开发流程的目的。ANDROID系统手机在中国已经火热流行开来,设计本课题时通过查阅相关资料让自己了解到了更多ANDROID手机的前沿信息,理清软件开发流程,进一步加固了对JAVA知识的运用。谢辞值此论文完成之际,首先,我要对我的导师金一鸣老师表示衷心的感谢。在我的大学学习生活中和本次毕业设计中,金老师给予我的鼓励和耐心指导,为我顺利完成课题奠定了坚实的基础,并且给了我面对困难和解决困难的勇气。在金老师这里,我不但获得了丰富的专业知识和研究方法,还从他身上学到了严谨的治学态度和精益求精的处事风格,使我终生受益。感谢我的辅导员陈雯老师,四年来一直默默的为的班级导航,将对未来充满懵懂的,慢慢引入各自的发展领域中,无论从生活上还是学习上都给了无微不至的关心和指导。感谢所有教过我的大学老师,他们给我的关怀和帮助,我将永远铭记于心。钦佩他们不仅是渊博的知识,还有高尚的道德情操,祝我所有的老师永远平安健康快乐。感谢我的同学,他们给予我的帮助和情谊是我一生的宝藏。感谢我的母校,给了我一个浓厚的学习氛围,同时给了丰富的实验资源和图书资源。参考文献1刘中兵JAVA高手真经出版社电子工业出版社,20093312(美国)SAVITCHJAVA程序设计现解决(基础篇)译者陈涓赵振平出版社人民邮电出版社,200711113白广元JAVAWEB整合开发完全自学手册M北京机械工业出版社,200914孙卫琴,李洪成TOMCAT与JAVAWEB开发技术详解M北京电子工业5刘斌JAVAWEB整合开发M北京电子工业出版社,200856王克宏JAVA技术教程(基础篇)M,北京清华大学出版社,200627(美)MARCOPISTOIA,NATARAJNAGARATNAM等著企业级JAVA安全性构建安全的J2EE应用M,北京清华大学出版社,200738张孝祥著JAVA就业培训教程M北京清华大学出版社,20079余志龙编著GOOGLEANDROIDSDK开发范例大全M北京人民邮电出版社,20097110E2ECLOUD工作室著深入浅出GOOGLEANDROIDM北京人民邮电出版社,20098111EOEANDROID开发社区HTTP/WWWEOEANDROIDCOM/,20104112杨丰盛ANDROID应用开发揭秘北京机械工业出版社,20100113(美)威尔顿,麦克匹克JAVASCRIPT入门经典(第3版)施宏斌译北京清华大学出版社,200914GONGLEI,ZHOUCONGDEVELOPMENTANDRESEARCHOFMOBILETERMINATIONAPPLICATIONBASEDONANDROIDJCOMPUTERANDMODERNIZATION20080815SHANECONDERANDROIDWIRELESSAPPLICATIONDEVELOPMENTMADDISONWESLEY201016SAYEDHANSHIMIPROANDROID3MAPRESSNEW,201017郑建,贺超ANDROID和CHROME的发展与未来J移动通信,2010318张鹏中国企业为什么

温馨提示

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

评论

0/150

提交评论