基于Android的中国象棋本科毕业设计.docx_第1页
基于Android的中国象棋本科毕业设计.docx_第2页
基于Android的中国象棋本科毕业设计.docx_第3页
基于Android的中国象棋本科毕业设计.docx_第4页
基于Android的中国象棋本科毕业设计.docx_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

武汉科技大学本科毕业设计摘 要 现在智能操作系统迅速发展,使得智能手机和其他的智能移动设备得到广泛普及,因此,智能操作系统的应用软件开发及其需要的服务将有广阔的发展前景。而android是开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,android平台具有无限的吸引力。另一方面,android系统是基于linux内核而开发的,他的上层应用软件都是基于java技术开发的。java是一门面向对象的开发语言,拥有更好的可移植性、健壮性和安全性,对于人性化的设计更为方便。 本文在分析讨论android应用软件开发技术原理的基础上,开发出基于android平台的中国象棋人人对弈的游戏软件。通过对android系统架构和应用开发进行初步研究,设计一款中国象棋的单机版游戏。在对系统进行详细需求分析的基础上,确定了系统的功能和性能要求,对游戏的欢迎界面、屏幕绘制、棋盘绘制、布局算法等进行设计,并最终实现一个界面友好、高效稳定和富有娱乐性和对战性的android应用软件。关键词:android系统; 中国象棋; java; 智能手机abstract now, the smartphone operating system is developed rapidly, making smart phones and other smart mobile devices widely available, so the smart operating system and application software development services required will have broad prospects for development. the android is an open architecture, not only has a very good development and debugging environment, but also supports a variety of scalable user experience, including rich graphical components, multimedia support, and powerful browser. therefore, for software professionals , android platform has unlimited appeal. on the other hand, android system is developed based on the linux kernel, and his upper application software is based on java technology development. java is an object-oriented development language, with better portability、robustness and security for the user-friendly design is more convenient. this paper discusses the analysis of android application development technology principle,on this basis, for the users to develop chinese chess software that is based on android system and that is just for one vs one. through the android system architecture and application development for a preliminary study to design a stand-alone version of chinese chess game. in the system, it needs to conduct a detailed analysis to determine the systems functional and performance requirements, carries on the design to the games welcome screen, screen painting, drawing board, layout algorithm , and ultimately to achieve a user-friendly, efficient and stable and rich entertainment and battle of android applications.keywords: android system; chinese chess; java; smartphones毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 目 录1 绪论31.1 中国象棋的背景介绍31.1.1 中国象棋的历史起源31.1.2 中国象棋的发展现状与前景31.2 android操作系统简介31.2.1 android操作系统背景31.2.2 android系统的优势与弊端31.2.3 android操作系统的现状与发展前景32 android系统的架构与开发环境32.1 android的体系结构32.2 android的四大组件32.3 android开发环境的搭建32.3.1 java jdk的安装32.3.2 eclipse的下载与使用32.3.3 android开发工具的安装32.3.4 android工程的建立33 中国象棋的走法规则与实现分析33.1 中国象棋的走法规则33.1.1 棋盘和棋子介绍33.1.2 中国象棋的规则和胜负的判定33.2 中国象棋的走法分析34 中国象棋软件的主要功能和界面布局34.1 中国象棋软件实现的主要功能34.2 软件的主要布局与实现34.2.1 开始游戏选项界面34.2.2 中国象棋选项界面35 中国象棋的算法设计与实现35.1 工程的建立35.2 工程模块的介绍35.2.1 各个类主要实现的功能35.2.2 工程中其他模块的介绍35.3 中国象棋的逻辑算法和实现35.3.1 棋盘和棋子的算法分析35.3.3 棋盘和棋子的绘制35.3.4 棋子的算法实现36 问题与软件的改进36.1 遇到的问题与解决方法36.2 软件所需的改进3结束语3参考文献3致谢3附录3621 绪论1.1 中国象棋的背景介绍1.1.1 中国象棋的历史起源 象棋应该说是源自汉朝,比魏晋时期的围棋要早上三四百年。自从刘邦斩白蛇起义,跟项羽约定先占咸阳者为王。由于项羽牵制了秦军主力,刘邦很快便打进了咸阳,擒获秦二世子婴,却始终畏惧楚霸王之威,不敢称王,驻兵于霸桥等待项羽。这时项羽军因对境遇不满投来一名帐前的执戟郎,名叫韩信,来到刘邦部下却依然不受重用,一怒之下月夜出走,于是演出了一幕“萧何月下追韩信”,自此韩信拜将,刘邦开始与项羽分庭抗礼,封为汉中王,划地而治。 后来刘邦采用韩信明修栈道,暗渡陈仓之计,击败守卫汉中要路的三秦降将章邯等,开始了与项羽争夺天下的序曲。刘邦部向西于项羽军交兵,屡战屡败,韩信部却移师向东采用置之死地而后生的战法击溃齐王陈余,并自称“代齐王”。刘邦为解东部之危,封韩信齐王,请求速援。韩信先用骄兵之计引项羽深入,在陔下布防以十面埋伏一举击溃项羽主力,并一路追击,迫使项羽自刎乌江。刘邦恐其功高震主,平定天下后削其兵权,仅封其为淮阴候,许诺即使韩信犯错也可以“见天不杀,见地不杀,见铁器不杀”。 后来刘邦终究对韩信畏惧,召入宫中,诬以重罪,限于三不杀之令,打入天牢,在做牢期间,韩信闲来无事想把自己的兵法传于后世,自创一种游戏,称为“玩棋”,教与牢卒,说练熟后可以明攻战之法,成一代名家。后来由吕后出毒计,把韩信关在一个小黑屋里,用绳子将他吊在空中,拿竹签扎死,不违三不杀之说,但“玩棋”却渐渐流传到世上,后来又被改成为象棋。 按韩信的说法,能研究透象棋的人,就可以深通韬略,成一代兵师,在民间象棋也远比围棋开展的更为普及,深受群众喜爱。 经过近百年的实践,象棋于北宋末定型成近代模式:32枚棋子, 有河界的棋盘,将和帅在九宫之中等等,至此之后,中国象棋在民间广为流传,堪称我国的国粹与精华。1.1.2 中国象棋的发展现状与前景 现代社会是一个科技与信息的时代,随着社会的发展,传统的中国象棋慢慢的被抛弃,现在已处在一个边缘化状态,以前老人或者孩子在大街小巷“将”、“吃”的声音已经基本看不到了。那么,作为中国的国粹,为什么如今会走下坡路呢?归根究底,我觉得最主要的有如下两个方面的原因: (1)国家不够重视。近现代,国家已经慢慢淡化了对中国传统文化的发展与培养的意识,特别是当代,无论是在校园里还是在社会上,对中国象棋的课程学习安排越来越少,诸如国家象棋队这样的,很多地方基本上都没有,这直接导致了人们对与中国象棋的淡忘和对兴趣的培养。本来对于传统文化来说,做为国人,应该每个人都要了解知道,特别是这种国粹的东西,更应该人人都会,但可悲的是,现在还有很多人都不会中国象棋,特别是现在的年轻人,有些根本就从来都没有接触过。至此以往,一代又一代的传承,中国的传统文化最终会走向灭亡,这是非常可怕的。 (2)现代化的人们都很忙,已无闲暇时间互相切磋。这主要其实也是由于社会的现状所引起的,为了能够买车、买房、娶媳妇,人们每天不得不早出晚归,甚至忙到深夜,整天都有赚不完的钱,好像他们已经忘记了人活着除了赚钱之外还可以享受生活。所以人们已经没有时间来放松,特别是对于中国象棋这种伤筋又费神的事,更不会把宝贵的时间“浪费”在这种事情上。好不容易有时间吧,人们更愿意花这些时间来上网、玩手机、旅游,亦或是睡觉。所以,随着社会的发展,对于中国的传统文化,人们已经无暇了解。 那么,展望未来,中国象棋,中国的国粹会将怎样发展呢?会不会真的就一直走向灭亡呢?我觉得一定不会。 刚刚我已近提到过,现代人们在闲暇之余都喜欢花大量的时间在上网和玩手机上,那么我觉得这也是像诸如中国象棋这类游戏得以发展和继承的一个机会,特别是近几年,手机和平板等移动终端突飞猛进的发展,使得软件开发这一个行业也迅速得到崛起。进两年,android操作平台每年都可以诞生出几十万款手机软件,目前的android手机软件数量更是接近百万款,基本上涉及到了人们生活的方方面面,这其中就包含了很多关于中国传统文化的软件,单中国象棋这一个游戏软件的数量就已经有上百款。所以,人们已经习惯了用手机或者平板打游戏来消磨时间,中国象棋这个软件也越来越受到大众的欢迎和青睐,这对于中国传统文化的传承和发扬是一个幸事,也是一个好事。所以,展望未来,中国象棋的发展其实也就是软件行业的发展以及移动平台的普及,特别是android操作系统,现在已经迅速崛起成为了智能终端的一大霸主,这对于学好软件开发,学好android操作系统设计显得非常有意义,同时这也是本次研究的宏观意义所在。1.2 android操作系统简介1.2.1 android操作系统背景 android一词最早出现于法国作家利尔亚当(auguste villiers de lisle-adam)在1886年发表的科幻小说未来夏娃(lve future)中。他将外表像人的机器起名为android,于是就有了这个可爱的小机器人1。 2005年8月17日,谷歌公司收购了android科技公司,android科技公司成为谷歌公司旗下的一部分,包括米奇米纳尔、克里斯怀特等所拥有的全资子公司,所有android科技公司的员工都被并入谷歌公司。当时,没有人知道谷歌公司为什么作出这项收购,有许多的猜测,后来证明谷歌正是借助此次收购正式进入移动领域。之后,到了2007年11月5日,在谷歌公司的领导下,开放手持设备联盟建立,最开始的一批创始成员包括broadcom公司、htc、intel、lg、marvell等公司。开放手持设备联盟的建立目的是为了创建一个更加开放自由的移动手机环境。而在开放手持设备联盟创建的同一天,联盟对外展示了他们的第一个产品,一台搭载了以linux 2.6为内核基础的android操作系统的智能手机。 2008年12月9日,新一批成员加入开放手持设备联盟,包括arm、华为、索尼爱立信等公司。2010年末数据显示,仅正式推出两年的操作系统的android已经超越称霸十年的诺基亚symbian系统,跃居全球最受欢迎的智能手机平台。 android的logo是由ascender公司设计的。其中的文字使用了ascender公司专门制作的称之为“droid ” 的字体。android是一个全身绿色的机器人,绿色也是android的标志。颜色采用了pms 376c和rgb中十六进制的#a4c639来绘制,这是android操作系统的品牌象徵。1.2.2 android系统的优势与弊端 作为一个在短时间内迅速崛起的产业系统,他必定存在着与其他系统所不同的特点和比较人性化的优势2,其主要表现在: (1)开放性在优势方面,android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。 (2)挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iphone、android上市之后,用户可以更加方便地连接网络,运营商的制约减少。随着edge、hsdpa这些2g至3g移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。 (3)丰富的硬件选择这一点还是与android平台的开放性相关,由于android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚symbian风格手机一下改用苹果iphone,同时还可将symbian中优秀的软件带到iphone上使用、联系人等资料更是可以方便地转移。 (4)不受任何限制的开发商android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给android难题之一。 (5)无缝结合的google应用如今叱咤互联网的google已经走过10年度历史。从搜索巨人到全面的互联网渗透,google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而android平台手机将无缝结合这些优秀的google服务。 其实,任何一个东西都有其好的一面,也肯定存在一些缺点。我觉得,android系统最大的缺点就是太乱了,这其实也与系统本身的开源性有关,这直接导致的后果就是存在很大的安全性问题,用户的隐私很容易就被泄露了。在很多的应用软件市场里面,app都没有经过严格的审核就放到了上面,这就存在着很多垃圾软件,亦或是存在着很多危险软件。另一方面,google对于系统的升级太快,很多厂商都跟不上google的步伐,当一个系统正在开始普及而还没有广泛普及的时候,新的系统又已经发布了,很多移动终端不能够迅速的得到升级,这就导致了用户对于系统的体验。 1.2.3 android操作系统的现状与发展前景 据美国调查公司idc于当地时间2013年2月14日公布的全球智能手机市场调查结果显示,2012年第四季度(1012月),配备谷歌移动操作系统(os)android的终端和配备苹果“ios”的终端(iphone)的总出货量占了全球市场91.1的份额。这两大平台手机的总出货量为2.076亿部,比上年同期的1.22亿部增加了70.2;2012年全年的出货量为7.224亿部,市场份额由去年的68.1扩大至87.6。而 idc 所带来的 2013 年第 1 季平板电脑市占率调查显示, android 平板电脑几乎翻转了去年的数据,冲上 56.5% 的市场占有率王座。 idc表示,“最近两年中,android和ios的总份额约超过了50。两强体制日益巩固”。 单独来看,2012年第四季度 android产品的出货量为同比增加88的1.598亿部,份额为70.1;而ios产品的出货量为同比增加29.2的4780万部,份额为21.0。全年出货量方面,android产品为4.971亿部,ios产品为1.359亿部。 推动android终端出货量增加的是三星电子。在2012年全年android终端的出货量中,三星终端的比例为42。idc的调查显示,在android终端供货量中拥有两位数份额的厂商只有三星,大部分厂商的份额还不到1。另一方面,随着价格、尺寸和设计各异的多种终端面世,消费者的选择范围扩大。idc分析,这正是推动android终端爆发性增长的原因。 ios终端的出货量在单季度和全年均实现了两位数增长,人气依然旺盛,不过与其他os相比,增长速度则显得比较慢。idc称其原因在于,2012年第二季度的供货量比上季度减少,第三季度也没有大幅增加。idc预测,苹果为维持增长,可能会在2013年中期投放iphone新机型。 其他os方面,排在第三位的黑莓(blackberry)在2012年第四季度的出货量为740万部,份额为3.2。微软的windows phone和windows mobile第四季度的出货量为600万部,份额为2.6。黑莓和微软分别于2013年1月,和2012年第四季度发布了新os。idc项目经理ryan reith预测称,“今后数年可能会诞生一些具有影响力的新势力”,“这些新os或许会陷入激烈的市场竞争,但平台的多样化对于消费者和通信运营商来说都是必需的”。 也就是说,android操作系统一直以来都是呈现出增长的趋势,现在也已经超越了iphone,成为了智能移动终端的霸主。现在,很多厂商经常性的发布一些非常具有性价比和配置相当高端、很具有吸引力的智能手机,这就比较大众化,对于android操作系统的发展很有优势,在最近的android 4.3和android5.0发布之后,我想android肯定会做出很大的系统优化和增加很多特色实用功能,这对于android发展而言又是锦上添花。 但android就会一直保持霸主的地位,一直增长下去吗?我认为不一定。因为受到android的冲击,与android分庭抗礼的另一大操作系统ios也准备改变战略,他们也准备在以后一段时间推出他们的新操作系统,最主要的是,ios还准备发布廉价版和不同尺寸大小的iphone,这可能对于android是一个很大的冲击。 不尽如此,windows phone操作系统作为后起之秀也正在追赶上来,并且势头也越来越大,更多的人们慢慢的开始接受了他。还有,很多新兴的操作系统,比如说火狐操作系统,三星刚刚发布的tizen操作系统等等,他们可能目前不太可能对android构成威胁,但至少也会受到一些影响。况且,科技的发展日新月异,难说几年之后,一个更好的操作系统诞生也说不定。所以说,物竞天择,不进则退,霸主的地位总是让能者居之,android只有在以后做得更好,才能长久立于不败之地。2 android系统的架构与开发环境2.1 android的体系结构 android的系统架构和其操作系统一样,采用了分层的架构3。从架构图看(如图2.1),android结构分为四个层,从高层到低层分别是应用层(application level),应用框架层(application frameworks),系统运行库层(libraries and android runtime level)和linux内核层(linux kernel level)。下面就对每一层做介绍:图2.1 android系统框架 (1)应用层(application level): 应用层是和用户交互的一个层次,用户可以看得见的一些应用,用户可以操作,如众多应用开发者开发的应用(第三方应用),google在开发android时,在应用层绑定的一些核心应用,比如email客户端、sms短消息程序、日历、地图、桌面(home)、浏览器(browers)、联系人(contacts)、电话(phone)、通话记录等。这类应用基本都是通过java语言编写的独立的能够完成某些功能的应用程序。开发人员可以使用应用框架提供的api编写自己的应用程序,普通开发人员要做的事情就是开应用层的程序提供该广大消费者使用。 (2)应用框架层(application frameworks): 这是android系统中最核心的部分,它集中体现了android系统的设计思想。应用框架层所提供的组件很多,包括活动管理器(avtivity manager)、窗口管理器(window manager)、内容提供器(content providers)、视图系统(view system)、包管理器(package manager)等等。对于开发者而言,框架层最直观的体现就是sdk,它通过一系列的java功能模块,来实现应用所需要的功能。普通开发者可以使用android基本应用程序使用的系统api,android应用框架中的各个模块都可以被复用,各种服务也可以被复用,理解了这个机制,开发人员可以更好的更轻松的开发出优秀的android应用。开发过程中常用到的基本框架组件如下: 活动管理(activity manager),activity管理着应用程序的生命周期,并且控制着应用的导航, 扮演控制器的角色。每个activity类似于windows应用中的一个wendow。一般的应用都是通过一个个activity交互构成的。 窗口管理(window manager),管理所有启动的窗口。 内容提供者(content providers),听起来有点抽象,通俗的理解content provider 就是提供一 种服务,通过这种服务应用程序之间可以实现数据的互相 访问和共享,比如通讯录的存储就使用了这种服务,其它应用也可以访问通讯录中存储的联系人信息。 视图系统(view system),这些view组件包括button(按钮),eidtview(文本框),textview(标 签),list(列表)等等,灵活运用这些组件可以快速方便的创建良好的用户交互界面。 包管理(package manager),管理所有的安装在android系统内的应用程序。 除此之外,还有很多服务框架组件,如资源管理(resource manager)、消息通知管理(notification manager)、位置管理(location manager)、电话管理(telephoney manager)等等。 (3)系统运行库层(libraries and android runtime level): 该层,是一些c/c+库,来提供底层的支持。主要包括bionic系统c库(c语言标准库,系统最底层的库)、多媒体库(mediaframework)、sgl(2d图形引擎库)、ssl(位于tcp/ip协议与各种应用层协议之间,提供数据通信支持)、opengl es 1.0(3d效果支持)、sqlite(关系数据库)、webkit(web浏览器引擎)、freetype(位图bitmap及矢量图vector)。 和所有的java程序运行平台一样,为了实现java程序在运行阶段的二次编译,android为它们提供了运行时的支撑。android运行时由java核心类库和虚拟机dalvik共同构成。java核心类库涵盖了android框架层和应用层所要用到的基础java库,包括android对象库,文件管理库,网络通信库等。dalvik是为android量身打造的java虚拟机,负责动态解析执行应用,分配空间,管理对象生命周期等工作。 (4)linux内核层(linux kernel level): android的linux内核层是基于linux kernel 2.6版本。linux内核层,主要是作为硬件和软件栈之间的抽象层。在软件栈视角看,linux内核就是“硬件”。内核层提供如下一些驱动:显示驱动(display driver)、键盘驱动(keyboard driver)、flash内存驱动(flash memory driver)、照相机驱动(camera driver)、音频驱动(audio driver)、蓝牙驱动(bluetooth driver,基于ieee 802.15.1)、wifi驱动、binder ipc驱动(android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信)、power management(电源管理)。2.2 android的四大组件 android四大基本组件分别是activity,service服务,content provider(内容提供者),broadcastreceiver(广播接收器)4。 (1)activity(活动)。android 中,activity是所有程序的根本,是应用程序的显示层,所有程序的流程都运行在activity 之中,activity可以算是开发者遇到的最频繁,也是android 当中最基本的模块之一。一般一个android 应用是由多个activity 组成的。这多个activity 之间可以进行相互跳转。每一个画面对应于你的应用程序,将会是activity类的扩展。activity使用views去构建ui来显示信息和响应用户的行为。 (2)services(服务)。service 是android 系统中的一种组件,它跟activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。service 是没有界面的长生命周期的代码。service是一种程序,它可以运行很长时间,但是它却没有用户界面。 (3)content provider(内容提供者)。content provider 是android提供的第三方应用数据的访问方案,提供共享的数据存储。在android中,对数据的保护是很严密的,除了放在sd卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。content provider用来管理和共享应用程序的数据库。在应用程序间,content provider是共享数据的首选方式。这意味着,你可以配置自己的content provider去存取其他的应用程序或者通过其他应用程序暴露的content provider去存取它们的数据。 (4)broadcastreceiver(广播接收器)。在android 中,broadcast是一种广泛运用的在应用程序之间传输信息的机制。而broadcastreceiver 是对发送出来的broadcast进行过滤接受并响应的一类组件。可以使用broadcastreceiver 来让应用对一个外部的事件做出响应。2.3 android开发环境的搭建2.3.1 java jdk的安装 在开发之前,需要对开发环境进行搭建和配置。其中jdk的的安装为: (1)下载最新版本的jdk,下载地址为: /technetwork/java/javase/downloads/index.html可根据自己的系统需求选择相应下载1。 (2)下载完后点击安装,最好安装在英文目录下面。 (3)jdk安装完成后,若是在命令窗口下运行和编译java程序的话,则还需要对环境变量做一些设置,但我用eclipse作为java开发环境,所以不需要设置环境变量。 至此,java jdk安装完毕。2.3.2 eclipse的下载与使用 eclipse的使用方法为: (1)下载最新版本的eclipse,下载地址为: /downloads/进入下载页面后,选择“eclipse ide for java ee developers ”进行下载5。 (2)eclipse是不需要安装的,下载完成之后解压缩,然后点击eclipse.exe可以直接运行,在第一次运行时需要设置一个工作空间。2.3.3 android开发工具的安装 java运行环境安装好之后,需要安装android的相关开发插件,其方法为: (1)android sdk的下载与设置根据自己的开发需要下载相应的sdk版本,下载地址为: /android-sdk/3693/releases.html (2)下载完成后解压缩,打开eclipse,然后再eclipse的标题栏上依次选择:【window】 【preference】【android】,点击browse,选择刚刚下载的android sdk路径,然后再点击ok即可6。如图2.2所示:图2.2 添加android sdk (3)完成第(2)步之后再在eclipse标题栏上依次选择:【window】 【android sdk manager】,在弹出的窗口中选择需要开发的android开发包,可以选择全选,如图2.3所示,以后如果需要更新android开发包都可以到这里来更新。图2.3 android sdk的管理和更新 这样android的开发工具的安装就全部完成了,即现在所有的准备工作就已经做好了,现在只需在eclipse里面新建工程,然后在里面开发就行了。2.3.4 android工程的建立 前面已经做好了所有的准备,那么怎样在eclipse下面新建一个android工程,以及怎样让新建的这个工程在android虚拟机上运行起来呢?下面详细介绍具体步骤5。 (1)新建一个android工程。在eclipse标题栏上面依次选择【file】【new】【android application project】(也可以直接点击工具栏上的快捷键),然后在弹出的窗口中填好程序名、工程名和包名,并选择自己需要开发的android api版本,我选择的是android2.3.3开发版本,如图2.4所示。写好之后可以点击“next”按钮进行其他的配置,也可以直接点击“finish”按钮以完成工程的建立。图2.4 android工程的建立 (2)android工程建好之后,就需要建立一个android的虚拟设备来运行这个工程,建立android虚拟设备的方法步骤为:选择【window】【android virtual device manager】,弹出的窗口如图2.5:图2.5 android虚拟设备的管理 选择右边的new按钮,在弹出的窗口中设置android虚拟设备的配置以及选择所需要运行的android系统的版本,如图2.6所示,点ok即可。 图2.6 android虚拟设备的创建 (3)虚拟设备建立好之后,就可以运行刚刚建立的android工程了。在工程上右键,然后选择【run as】【android application】,程序无错之后eclipse就会启动刚刚创建的android虚拟设备,这和我们使用的智能手机是一样的,首选会是漫长的开机,开机解锁之后就可以看到刚刚的程序在运行。 一般而言,一个应用程序开发好之后,都需要把他弄到移动设备上进行安装测试,那么应用程序怎样把他弄到手机上呢?方法其实很简单,只需要打开自己手机的开发人员调试功能,然后将其用usb连接到电脑上,这是你在用刚才同样的方法运行程序时,在运行之前就可以选择你自己的移动设备进行运行。还有一种方法就是,将运行的程序右键,然后选择【android tools】【 export unsigned application package】,将其apk文件导出到电脑或者手机上,然后再在手机上进行安装测试。3 中国象棋的走法规则与实现分析3.1 中国象棋的走法规则3.1.1 棋盘和棋子介绍 中国象棋是由棋盘和棋子组成的,下面就详细的介绍这两部分。 (1)棋盘 棋子活动的场所,叫做棋盘,在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共九十个交叉点,棋子就摆在这些交叉点上。中间第五、第六两横线之间未画竖线的空白地带,称为河界,整个棋盘就以河界分为相等的两部分;两方将帅坐镇、画米字方格的地方,叫做九宫。如图3.1所示。 图3.1 中国象棋的棋盘和棋子 (2)棋子 中国象棋的棋子共三十二个,分为红方和黑方两组,各十六个,由对弈双方各执一组,兵种是一样的,分为七种:红方:帅、仕、相、車、馬、砲、兵黑方:将、士、象、車、馬、炮、卒 其中帅与将、仕与士、相与象、兵与卒的作用完全相同,仅仅是为了区分红棋和黑棋。3.1.2 中国象棋的规则和胜负的判定 俗话说,无矩不成方圆,作为一个这么成熟的游戏也肯定会有他的规则和判定方法。中国象棋的规则和判定方法为: (1)对局时,由执红棋的一方先走,双方轮流各走一着,直至分出胜、负、和,对局即终了。轮到走棋的一方,将某个棋子从一个交叉点走到另一个交叉点,或者吃掉对方的棋子而占领其交叉点,都算走了一着。双方各走一着,称为一个回合。 (2)中国象棋各棋子走法 帅(将):帅和将是棋中的首脑,是双方竭力争夺的目标。它只能在九宫之内活动,可上可下,可左可右,每次走动只能按竖线或横线走动一格。帅与将不能在同一直线上直接对面,否则走方判负。仕(士):仕(士)是帅(将)的贴身保镖,它也只能在九宫内走动。它的行棋路径只能是九宫内的斜线。相(象):相(象)的主要作用是防守,保护自己的帅(将)。它的走法是每次循对角线走两格,俗称象走田。相(象)的活动范围限于河界以内的本方阵地,不能过河,且如果它走的田字中央有一个棋子,就不能走,俗称塞象眼。车:车在象棋中威力最大,无论横线、竖线均可行走,只要无子阻拦,步数不受限制。因此,一车可以控制十七个点,故有一车十子寒之称。炮:炮在不吃子的时候,走动与车完全相同。马:马走动的方法是一直一斜,即先横着或直着走一格,然后再斜着走一个对角线,俗称马走日。马一次可走的选择点可以达到四周的八个点,故有八面威风之说。如果在要去的方向有别的棋子挡住,马就无法走过去,俗称蹩马腿。兵(卒):兵(卒)在未过河前,只能向前一步步走,过河以后,除不能后退外,允许左右移动,但也只能一次一步。 (3)吃子 任何棋子走动时,如果目标位置上有对方的棋子,就可以把对方的棋子拿出棋盘,再换上自己的棋子(即吃子)。只有炮的吃子方式与其他子不同:炮与被吃子之间必须隔一个棋子,进行跳吃,俗称架炮或炮打隔子。 (4)胜负的判定 对局时,一方出现下列情况之一,就算输棋,对方得胜: 帅(将)被对方将死,即被对方将军却无法应将; 帅(将)被将军,无法避免地同对方将(帅)直接对面; 被困毙,即虽未被对方将军,本方却已无棋可走动; 封棋着法有误; 走棋违犯禁例,应当变着而不变,即一方长将不变,长将一方算输; 在同一局棋中,单方面出现第三次违例; 自己宣布认输; 因违犯纪律被判输棋。 出现下列情况之一,为和棋: 双方均无可能取胜的简单局势; 一方提议作和,另一方表示同意; 双方走棋出现循环反复三次,符合“棋例”中“不变作和”有关规定; 符合自然限着的回合规定,即在连续规定回合中,双方都没有吃过 一个棋子。3.2 中国象棋的走法分析 明白了中国象棋的走法与规则之后,就需要来分析怎样在棋盘上实现中国象棋的这些走法。 (1)帅(将)的走法: 图3.2 帅(将)的走法图 帅(将)的走法如上图3.2所示。帅和将都是是双方的首脑和指挥者,同时下棋双方的最主要目标也是将死对方的帅或将。帅和将位于两个士的中间,他们的行走只能在九宫格中,而且在九宫格中只能走横的或者竖的直线,不能斜走,并且每次只能走一步。一旦帅或者将被吃掉则游戏结束。 (2)士(仕)的走法: 图3.3 士(仕)的走法图 如图3.2所示,士(仕)是护卫,是保护帅(将)的。士(仕)的走动范围也是在九宫格之内,但士(仕)只能走斜线,不能横竖走,而且每次也只能走一步,所以,由图可以看出,士(仕)的走动范围实际上就只有5个位置。 (3)相(象)的走法: 图3.4 相(象)的走法 如图3.4所示,相(象)的走法只能沿着自己的对角线走两个,即所说的相(象)走田。但有些特殊的是,如果象所走的斜对角的中间有棋子(象眼),如图中的红色圈中的棋子,则相(象)就被堵住了而不能走那个方位的地方(如图中4位置就不能走),在实现时就需要先判断象眼处是否有棋子。还有相(象)只能在自己一方走棋而不能过河,这样其实相(象)能走的地方其实就只有7个。 (4)马的走法: 图3.5 马的走法 马的走法如图3.5所示。俗话说,马踏日,这就是说,马只能走日字,而且只能走日字的对角线,当然,这个日字可以是横的也可以是竖的。但是有一种特殊情况,就是如果马脚处有棋子的话,则马就不能走这个日字,如图,红色圈内就是蹩马腿的情况,则此时马就不能走到1的位置。这在算法实现时就应当首先判断马脚出是否有棋子,有则不能走。 (5)车的走法: 图3.6 车的走法 如图3.6所示,在整个中国象棋中,车的走法是最自由的,同时也是杀伤力最大的。在整个棋盘内,车可以横竖任意走动或者吃子,只要在车所走的横线或者竖线上面没有其他的棋子所阻挡,当然若是对方的棋子就干掉他。 (6)炮的走法: 图3.7 炮的走法 如图3.7所示。炮在行走时他的走法规则和车的走法是一样的,只要所走的中间没有棋子所阻挡,则可以任意横冲直撞。但在吃子时,炮吃子需要在自己和被吃子的中间有一个棋子作为炮架子时,才能够轰掉对方的棋子,没有这个炮架子时则只能走棋不能吃子,当然这个炮架子可以是对方的棋子,也可以是自己的棋子。所以在算法实现时,若想吃子,则首先要判断中间是否有这个炮架子,没有或者有多个则不能够吃子。 (7)兵(卒)的走法: 图3.8 兵(卒)的走法 如图3.8所示为兵(卒)的走法。兵(卒)的走法分为过河前和过河后。在过河前,兵(卒)只能向前直走,而且只能走一步,还不能够后退。当兵(卒)过河之后,他就能够横走也能够向前直走了,此时也是只能走一步,仍然不能够后退。

温馨提示

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

评论

0/150

提交评论