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

下载本文档

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

文档简介

上海电力学院上海电力学院 本科毕业设计(论文)本科毕业设计(论文) 题 目: 基于 android 的中国象棋游戏的设计 i 毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明 原创性声明原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师 的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以 标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究 成果,也不包含我为获得 及其它教育机构的学位或学历而 使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均 已在文中作了明确的说明并表示了谢意。 作 者 签 名: 日 期: 指导教师签名: 日 期: 使用授权说明使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文) 的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本; 学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与 阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论 文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名: 日 期: ii 基于 android 的中国象棋游戏的设计 摘要 随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能 够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机 终端上,让手机能够通过移动网以及互联网访问 web 网站并处理各种各样的业务。因此, 智能手机的应用软件及其需要的服务将有广阔的发展前景。而 android 是开放性体系架构, 不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形 组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,android 平台 具有无限的吸引力。 本文就在分析讨论 android 手机软件开发技术原理的基础上,为用户开发出基于 android 平台的中国象棋游戏的软件。通过对 android 系统架构和应用开发进行初步研究, 设计一款中国象棋游戏。在对系统进行详细需求分析的基础上,确定了系统的功能和性 能要求,对游戏的菜单界面、屏幕绘制、时间控制、布局算法、音效和动画 等进行了设 计,并最终实现了一个界面友好、高效稳定和富有娱乐性的手机益智游戏。 关键字:android;中国象棋;智能手机平台 iii the design of chinese chess game based on android abstract with the rapid proliferation of smart phones, smart phone operating system market, wind and water. in order for smart phone users to check the internet anytime, anywhere services provided an efficient way to expand the function of the system will be applied to the mobile phone terminal, the mobile phone to internet access via mobile networks, and variety of web sites and process business. therefore, the smart phone applications and the need for the service will have broad prospects for development. androids biggest feature is its 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 is, android platform has unlimited appeal. in this paper, the analysis and discussion android mobile phone software development technology on the basis of the principle, developed to provide users with better platform to the chinese chess based on android meteorological software. through to the android system structure and application development for preliminary research, designed a chinese chess game. in the system based on the analysis of the detailed requirements, made sure the system function and performance requirements, to the game menu interface, and the screen rendering, time control, layout algorithm, sound effects and animation, design, and finally achieved a friendly interface, high efficiency and stability and entertaining mobile phone puzzles. keywords:android;chinese chess;smartphone platform 目录 1 引言 1 1.1 研究背景 1 1.2 研究目的和意义 2 1.3 论文结构安排 3 2 android 操作系统简介 3 2.1 智能手机系统现状 3 2.2 android的功能特征 .5 2.3 android系统的特点 .7 2.4 android的体系结构 .7 3 android 开发环境 9 3.1 操作系统及所需软件.10 3.2 android开发环境及变量配置 10 3.2.1 安装配置 jdk6 10 3.2.2 安装配置 sdk .12 3.3 eclipse的设置 12 3.4 android版本配置 13 4 应用程序的总体设计 .13 4.1 详细规则 .13 4.2 胜负判定方法 .14 4.3 棋子行走规则 .15 5 功能的设计与实现 .18 5.1 各种相关类的介绍 .19 5.2 过程中的逻辑处理 .21 5.3 棋子走法流程图 .23 5.4 游戏模拟运行 .26 5.5 改进和优化 .29 6 结论.30 谢辞.31 参考文献.32 附录.33 1 1 引言 android 是 google 于 2007 年 11 月 05 日宣布的基于 linux 平台的开源移动操作系统 的名称,该平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层 (software stack,又名软件叠层)的架构,主要分为三部分。底层以 linux 内核工作为 基础, android 系统效果图由 c 语言开发,只提供基本功能;中间层包括函数库 library 和虚拟机 virtual machine,由 c+开发。最上层是各种应用软件,包括通话程序,短信程 序等,应用软件则由各公司自行开发,以 java 作为编写程序的一部分。不存在任何以往阻 碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。 google 通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的 合作伙伴关系,希望能借助其来建立标准化、开放式的移动电话软件平台,在移动产业内 形成一个开放式的生态系统1。 1.1 研究背景 随着移动通信的发展以及互联网向移动终端的普及,网络和用户对移动终端的要求越 来越高,而 symbian,windows mobile,palm os 等手机平台过于封闭,不能很好的满足用 户的需求,因此市场迫切需要一个开放性很强的平台2。 android 是一个基于 linux 核心(kernel)的开放手机平台系统。与 windows mobile、symbian 等手机系统处在同一级别。对于设备制造商来说, android 是一个免 费的平台。android 系统让设备制造商免除每出一台手机,就得被手机系统厂商 赚一些 钱的情况。对硬体开发厂商来说, android 也是个开放的平台3。只要厂商有能力,可 以在这个平台上自由加入特有的装置或功能,不受手机系统厂商的限制。对于手持装置 的开发者来说,android 是个先进的平台。平台上的应用程式可相容于各种型号的 android 手机,免去为各种不同手机机型开发的困扰。 android 平台支援各种先进的网 路、绘图、3d 处理能力,可以用来提供更好的使用者体验。对于使用者来说, android 是一个用于手机的系统。使用者只要先申请一个免费的 google 帐户,当使用者想换一 台手机时,就可以在不同厂牌,同样使用 android 系统平台的手机之间选择,并且很容 易地将如联络簿等个人资料转换到新手机上 4。 android 在 linux 核心的基础上,提供了各种合用的函数库,和一个完整的应用程 2 式框架。并采用较符合商用限制的 apache 版权。在 linux 核心的基础上提供 google 自制的应用程式运行环境 (称作 dalvik,与 sun 的 j2me 不同),并提供基于 eclipse 整合开发环境(ide)的免费、跨平台(windows、mac os x、linux) 开发工具(sdk),便 于应用程式开发者学习、使用。免费、熟悉的跨平台开发工具,让具备一些物件导向观 念,或视窗程式开发经验的开发者,能在一定时间内上手 5。从不同角度来说, android 代表着一个崭新的开放原始码系统平台、一个友善的免费应用程式开发环境、 一个与世界各地的程式开发者,站在相同起跑点上的公平竞争机会。 而中国象棋作为一 款经典的益智游戏,一直以来都被众多的游戏爱好者喜欢,这个游戏,男女老少皆宜。 游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人 的思维逻辑能力得到锻 炼6。 1.2 研究目的和意义 android 这个平台对于 google 对于大众的意义不在于手机本身,android 存在的目的 也不在于挑起手机操作系统之间的混战,而在于推动移动互联网产业链的迅速成型。 具有开源特性的 android 平台打破了之前 symbian、windows mobile 等操作系统收取 高额的授权费用的模式,使得只能手机成本大大的降低;而正是由于它开发源代码,使得 手机产生更多个性化的应用。同时,合作方能够在这里得到利润或者创造价值,手机软件 行业得到维护协调发展。 以 google、苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联 网的发展,这正是 google 推出 android 平台的意义,也是 android 平台存在的使命。而作 为 android 平台成员之一的中国移动也投资成立了一家通讯公司,专门从事 google 手机软 件的应用以及本地化的软件的开发,比如将在 google 手机平台上添加飞信、输入法等一系 列符合国内用户使用特色的功能。国内众多企业也将眼光投入到 android 上面,并启动了 相关的计划来深入的理解并发展 android。更多的手机软件开发企业已经或者筹备着将公 司进行转型,从其方向的开发转向到 android 的开发7。 综上所述,无论是在国内还是在国外,android 平台对手机软件行业和移动手机平台 将发挥极大地推动作用,而在未来的几年或者一段时间内,android 将越发的凸显自己的 重要性。基于此,我们有必要通过进行相关的研究来了解 android 平台,来了解开发 android 的那一大批人的先进的理念和思想,并通过这些来了解手机软件行业,进而了解 未来无移动互联网的发展趋势,从而更好的适应时代的需要8。 3 本课题的目的在于掌握 java 手机应用开发技术和移动软件平台开发技术。在以 java 语言为基础,结合 android 移动开发平台,并利用 android 提供的 sdk,完成在 android 平台上运行的中国象棋软件。 本课题的意义在于通过开发一款简易中国象棋手机应用软件,可以熟练应用 android 平台提供的应用程序接口,掌握 android 平台上的各种应用。 1.3 论文结构安排 整篇论文共分为六个部分,其主要内容安排如下: 第 1 章 引言。介绍论文的研究背景、目的和意义。包括课题的背景资料简介、国 内外研究现状和发展趋势、深入地介绍了课题研究的价值以及对未来的影响。 第 2 章 android 操作系统简介。这部分主要是介绍了智能手机系统现状、android 的功能特征、android 系统的特点以及 android 的体系结构。 第 3 章 android 开发环境。这部分主要介绍了 eclipse 和 android 开发环境的搭建。 第 4 章 应用程序的总体设计。这部分主要介绍了中国象棋的详细规则及胜负判定 方法和棋子的行走规则。 第 5 章 功能的设计与实现。这部分主要介绍了游戏的界面、游戏中的逻辑处理以 及该游戏今后的改进和优化。 第 6 章 结论。对整篇论文加以总结与回顾以及对未来的展望。 2 android 操作系统简介 android是基于linux内核的操作系统,早期由google开发,后由开放手机联盟开发。 它采用了软件堆层的架构,主要分为三部分。底层以linux内核工作为基础,只提供基本功 能;其他的应用软件则由各公司自行开发,以java作为编写程序的一部分。另外,为了推 广此技术,google和其它几十个手机公司建立了开放手机联盟。目前最新版本为 android4.09。 2.1智能手机系统现状 手机操作系统是时下最火热的话题之一,大家都在追随不断新出的操作系统。虽然它 4 的火热程度在持续高涨,但是手机操作系统的发展并不是那么长久。在 2002 年之前,并没 有严格意义上的手机操作系统,因为能完成通话功能的手机都是由厂家自己做芯片,然后 配上相应的软件就可以完成。不过此后,手机的品种越来越多,发展也越来越快,随着人 们对手机的需求也越来越大,智能手机和手机操作系统就应运而生了10。 目前热门的手机操作系统主要有 5 种: (1)塞班(symbian) 昔日的行业大哥,这个日渐落寞的操作系统,曾经红遍天下。但是随着近些年苹果和 谷歌的发力,一直在走下坡路,塞班的市场份额已经降到了谷底。有统计显示,到去年年 底,塞班系统的全球市场占有量仅有 22.1%。虽然基本的常用软件非常的丰富,但是塞班 系统弊病不断,在更激烈的竞争中败下阵来。随着塞班的沦陷,诺基亚也沦落了。曾经, 诺基亚在芬兰几乎是国家的象征。现在,为了改变颓势,又需要寻求突围了。 代表手机:诺基亚,索尼爱立信、lg (2)安卓(android) 2008 年,谷歌发布了 android 操作系统,从此智能手机操作系统界不再安静。2009 年, 原来引用塞班平台的厂商,比如 lg、索尼爱立信等纷纷退出塞班平台,投入 android 领域。 不久,android 系统就取代了塞班成为智能手机操作系统的霸主。在 2011 年的第一季度, android 在全球的市场份额就已经超过了塞班,位居世界第一。到了 2011 年底,android 占据了全球 52.5%的份额。android 手机的软件非常的丰富,而且基本都是免费的,可以通 过多个应用商店下载。另外,android 的本地化也做得很好,刷机非常方便11。 代表手机:三星,htc,小米,索尼爱立信、魅族、摩托罗拉,中兴,华为等。 (3)ios 这么多操作系统中,可以说苹果的使用体验是最好的。android 虽然是霸主地位,但 是系统却没有 ios 完美。ios 不是开放的系统,它的很多应用多需要付费才能使用。 (4)windows phone windows phone 发布于 2010 年 10 月,作为微软移动的筹码,正式与 android 和 ios 竞争。2011 年 2 月,诺基亚与微软合作,试图挽回失去的大局。现在已经更新至 windows phone 7.6 了,大家十分期待的 windows phone 8 也将在今年第四季度发布。尽管如此, windows phone 可以说是不够成熟的,在中国,行货手机非常少,而且本地化做得也不是 特别好。如果有一天,windows phone 大面积在中国开卖,相信市场一定会有的,毕竟现 在苹果和安卓已经满大街都是了,再加上诺基亚的“砸核桃”功能,一定会引来一阵高潮。 5 代表手机:三星,htc, lg,中兴等 (5)黑莓(black berry) 黑莓在欧美市场是第一商务智能手机,引入中国后,主要面向政企集团客户,苏宁是 独家的销售渠道,不过,国内市场有很多渠道可以买到水货。从市场来看,黑莓在中国并 没有那么受欢迎,软件资源也不是那么丰富。 总结:移动互联网在一轮又一轮的掀起高潮,这中间智能手机操作系统起到了至关重 要的作用。从目前市场来看,主要的竞争还是在于微软、苹果和谷歌之间,三大操作系统 可谓是三足鼎立。过不了多久,windows phone 8 就要出来了,相信到时候市场又会有很 大的不同,坐观其变。 手机应用开发中的 java 技术有如下特点: 在信息社会中手机及其他无线设备越来越多的走进普通百姓的工作和生活随着信息网 络化的不断进展手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端: 首先传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除有了错误也不能更 新、修改若要增加新功能必须另换一部手机。 其次传统手机访问互联网是通过 wapwireless application protocal 所有网络资源必 须接通网络才能在线访问非常耗时、费用亦很高。 而 java 技术在无线应用方面的优势非 常明显: (1) 应用程序可按需下载而不是购买由硬件商提供的套件可升级空间大。 (2) java 技术提供了一个类库它使的应用,开发商可以创建更为直觉、丰富的用户界 面。 (3) java 技术使网络带宽的应用更为有效因为应用程序可以下载到器件上并在本地运 行仅仅是在连接到服务器时才会占用网络带宽12。 基于以上分析 java 手机将是未来手机的发展方向是业界的热点。本次设计正是基于当 前热门的 android 手机应用开发,也就是采用 java 语言编程开发。 2.2 android 的功能特征 (l)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程序 时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。 (2)dalvik 虚拟机器:在 android 平台上所使用 java 虚拟机,不是 sim 公司的标准 java 虚拟机,而是使用 google 自主开发的代号为 dalvik 的虚拟机,它在保证 api 方面的 兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。 6 (3)集成的浏览器:集成的浏览器是 android 内建的浏览器,是以 webkit 的浏览引擎为 基础所开发成的。wedkit 是一个开源浏览器网页排版引擎,目前使用 webkit 引擎的浏览 器主要有:safari,midori,epiphany 等。配合 android 手机的功能,可以在浏览网页时, 达到更好的效果,例如:局部性的缩放网页上的资讯、触控式的操作等效果。 (4)优化的绘图能力:在程序里可以用到的绘图功能分为 2d 与 3d 两个方面。在 2d 方面, android 提供了一套特有的类库(sgl;而在 3d 方面则是使用 opengles1.0(opengl for embedded systems)规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。 (5)sqlite 数据库:sqlite 提供结构化的数据存取。sqlite 是一款轻型的数据库,它 的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。 它能够支持 windows/linux/u nix 等主流的操作系统,同时能够跟很多程序语言相结合, 比如 php,java 等,还有 odbc 接口,同样比起 mysql,postgresql 来讲,它的处理速度比 它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积 小只有 250kb 但支持数据库大小至 2tb。它虽然很小巧,但是支持的 sql 语句毫不逊色于 其它开源数据库。同时它还支持事务功能和并发处理等等。sqlite 也是一套开放性的关联 式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。 (6)多媒体的支持能力:主要用于播放媒体文件。这同时包括对音频(如播放 mp3 或其他 音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放 uri 地址” (note:uri 即是统一资源识别地址)模式在网络上直接播放的流媒体。另外支持各种通用 的静态图像格式,例如:jpg、png、gif 等格式。 (7)gsm 技术:global system for mobile communications,即全球移动通讯系统,俗 称”全球通” ,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目 的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。 gsm 技术是属于手机硬件方面的展现,也是在开发 android 应用程序时可以突出的特点之 一。 (8)蓝牙、edge、3g 及 wi-fi:蓝牙是一种新型、开放、低成本、短距离的无线连接技 术,可取代短距离的电缆,实现话音和数据的无线传输。edge(enhanced data rate for gsm,evolution),即增强型数据速率 gsm 演进技术。edge 是一种从 gsm 到 3g 的过渡技术, 它主要是在 gsm 系统中采用了一种新的调制方法,即最先进的多时隙操作和 spsk 调制技术。 由于 8psk 可将现有 gsm 网络采用的 gmsk 调制技术的信号空间从 2 扩展到 8,从而使每个 符号所包含的信息是原来的 4 倍。wi-fi(wirelessfidelity),即无线保真技术,与蓝牙技 7 术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是 2.4ghz 附近的 频段,该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,分别是 ieee802.lla 和 ieee802.11b。这些通讯能力也是属于手机硬件方面的展现,也是在开发 android 应用程序时可以突出的特点之一。 (9)gps: global positioning system,即全球定位系统,它是一个由覆盖全球的 24 颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到 4 颗 卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功 能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面 的体现,也是在开发 android 应用程序是可以突出的特点之一13。 2.3 android 系统的特点 android 系统具有如下 5 个特点: 1.开放性。google 与开放手机联盟合作开发了 android,google 通过与运营商、 设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、 开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。 2.应用程序无界限。android 上的应用程序可以通过标准 api(application programming interface,应用程序编程接口)访问核心移动设备功能。通过互联网, 应用程序可以声明它们的功能可供其他应用程序使用。 3.应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展, 即使是拨号程序或主屏幕这样的核心组件。 4.应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入 html、javascript 和 样式表,还可以通过 webview 显示网络内容。 5.应用程序可以并行运行。 android 是一种完整的多任务环境,应用程序可以在其 中并行运行。在后台运行时,应用程序可以生成通知以引动注意 14。 每个 android 应用程序都存在于它自己的世界之中:默认情况下,每个应用程序均 运行于它自己的 linux 进程中。当应用程序中的任意代码开始执行时, android 启动一 个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。 每个进程都运行于自己的 java 虚拟机(vm)中。所以应用程序代码实际上与其它应用 程序的代码是隔绝的。 默认情况下,每个应用程序均被赋予一个唯一的 linux 用户 id,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然, 8 也有其它的方法使得这些文件同样能为别的应用程序所访问。 使两个应用程序共有同一个用户 id 是可行的,这种情况下他们可以看到彼此的文 件。从系统资源维护的角度来看,拥有同一个 id 的应用程序也将在运行时使用同一个 linux 进程,以及同一个虚拟机 15。 2.4 android 的体系结构 android平台是一组面向移动设备的软件包,它包含了一个操作系统、中间件和关键应 用程序。开发人员可以使用android sdk(软件开发工具包)为这个平台创造应用程序。应用 程序使用java语言编写并在dalvik之内运行。dalvik是一款量身定制的虚拟机,它专为嵌 入式应用设计,运行在linux内核上层16。 (1)android架构 如下图 2.1 显示了 android 操作系统的主要组件。 图 2.1 android 操作系统的主要组件 (2)linux 内核 android依赖linux 2.6版,提供核心系统服务:安全、内存管理、进程管理、网络组、 驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。 9 (3)应用框架 android的核心应用程序就是依赖框架层次api开发的,程序员们可以充分使用这些 api。应用架构设计的初衷是:简化组件复用机制;任何应用都能发布自己的功能,这些功 能又可以被任何其他应用使用(当然要受来自框架的强制安全规范的约束) 。和复用机制相 同,框架允许组件的更换17。 (4)c/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、content provider 四部分组成,但并不是每一个 android 应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件 androidmanifest.xml 中进行配置。这个配置文件是每个 android 应用程序所必需的,用 于定义应用程序的组件、组件的功能以及必要条件等18。android 应用的构成和工作流程 如图 2-2: 10 internet receiver activity 外部事件 internet 通过 internet receiver 对外部事件进行响应 content provider activity 存储设备 通过 internet 实现 活动之间的转换 通过 content provider 进行数据存储 service binder 通过 binder 对 service 进行绑定 图 2-2 android 的构成 3 android开发环境 eclipse 是替代 ibm visual age for java 的下一代 ide 开发环境,但它未来的目标 不仅仅是成为专门开发 java 程序的 ide 环境,根据 eclipse 的体系结构,通过开发插件, 它能扩展到任何语言的开发,甚至能成为图片绘制的工具。目前,eclipse 可以提供 c 语 言开发的功能插件。更可贵的是,eclipse 是一个开放源代码的项目,任何人都可以下载 eclipse 的源代码,并且在此基础上开发自己的功能插件。也就是说未来只要有人需要, 就会有建立在 eclipse 之上的 cobol,perl,python 等语言的开发插件出现。同时可以通 过开发新的插件扩展现有插件的功能,比如再现有 java 开发环境中加入 tomcat 服务插件。 可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是 eclipse 的潜力所 在19。 3.1 操作系统及所需软件 编写android的应用程序,需要一套个人电脑系统。至于操作系统的部份,几个主流操 作系统都有支持。支持的操作系统如下:windows xp 、vista或windows 7。 在开始搭建 android 的开发环境之前,需要准备的软件包如下: 11 (1)jdk6 (jdk-6u21-windows-i586.exe) (2)eclipse(eclipse-java-galileo-sr2-win32.zip) (3)android sdk 1.6(android-sdk-windows-1.6_r1.zip) (4)android sdk setup(android-sdk_r06-windows.zip) (5)adt 0.9.7(adt-0.9.7.zip) 3.2 android 开发环境及变量配置 eclipse 设计的美妙之处,在于所有东西都是外挂,除了底层的核心以外。这种外挂 设计让 eclipse 具备强大扩充性,但更重要的是,此平台提供一个定义明确的机制,让各 种外挂程序共通合作(透过延伸点 extension points)与贡献(contributions),因此 新功能可以轻易且无缝地加入平台20。 3.2.1 安装配置 jdk6 下载后安装是下的解压包那就解压到某目录,例如解压到是 c:javajdk1.6.0_20; 右键点击我的电脑 - 属性 - 高级,点击下面的环境变量,在下面的“系统变量”处选 择新建在变量名处输入 java_home 变量值中输入刚才的目录,比如我的是在目录 c:javajdk1.6.0_20 下;效果如图 3-1 所示: 12 图 3-1 进入环境变量 确定后再新建一个变量名为 classpath,变量值为 %java_home%/lib/rt.jar;%java_home%/lib/tools.jar , 确定后找到 path 的变量,双击 或点击编辑,在变量值最前面加上%java_home%/tools; 注意里面的是,确定、确定、确定 后即可。具体如下图 3-2 所示: 13 图 3-2 环境变量的设置 接着在 “开始-运行” ,输入cmd,然后在命令行提示符中输入:java -version,如 果能够看到java version “1.6.0_20信息;就表示jdk安装成功。 3.2.2 安装配置sdk 将下载 android-sdk-windows-1.6_r1.zip 解压缩到 c:android-sdk-windows-1.6_r1 目录中。新建一个“系统变量” ,在“变量名”中填 android_home,在“变量值”加填 c:android-sdk-windows-1.6_r1。 “编辑”path 变量,在“变量值”后面加上; %android_home%tools。这样,android sdk 1.6 就安装好了。 “开始-运行” ,输入 cmd, 然后在命令行提示符中输入:android -help,应该能够看到帮助信息;android sdk 1.6 安装成功。 3.3 eclipse 的设置 将下载到的 eclipse 解压缩到 c:eclipse,然后进入这个文件夹,双击 eclipse.exe,启动 eclipse。关联 adnroid sdk:菜单“windows-preferences” ,打开 preferences 对话框,点击 android,在右侧的 android reference 中,点 sdk location 文本框右侧的 browse按钮,找到 c:android-sdk-windows-1.6_r1, “确定” 。安装 adt:菜单“help - install new software” ,打开 install 对话框,点击 add按钮, 14 添加站点(add site) ,在 name 中填 adt,在 location 中填 https:/dl- /android/eclipse/。然后,下载安装 adt。第四步,解压 android sdk setup,下载更新 android sdk 2.0 和 2.1 将下载到的 android-sdk_r04-windows.zip 解压 缩到 c:android-sdk-windows,然后进入这个文件夹,双击 sdk setup.exe,启动 android sdk and avd manager,选中左侧 settings 项,然后在右侧面板选中 force https:/ sources to be fetched using http:/,然后选择 save /将该棋子设为选中的棋子 focus = true;/标记当前有选中的棋子 starti = i; startj = j; else/之前选中过棋子 if(qiziij != 0)/点击的位置有棋子 if(qiziij 7)/如果是自己的棋子. selectqizi = qiziij;/将该棋子设为选中的棋子 starti = i; startj = j; else/如果是对方的棋子 endi = i; 23 endj = j;/保存该点 boolean canmove = guize.canmove(qizi, starti, startj, endi, endj); if(canmove)/如果可以移动过去 caipan = false;/不让玩家走了 if(qiziendiendj = 1 | qiziendiendj = 8)/如果是“帅”或“将” this.success();/胜利了 else if(activity.issound) go.start();/播放下棋声音 qiziendiendj = qizistartistartj;/ 移动棋子 qizistartistartj = 0;/将原来处设空 starti = -1; startj = -1; endi = -1; endj = -1;/还原保存点 focus = false;/标记当前没有选中棋子 chessmove cm = guize.searchagoodmove(qizi);/根据当前局势查询一个最好的走 法 if(activity.issound) go.start();/播放下棋声音 qizicm.toxcm.toy = qizicm.fromxcm.fromy;/移动棋子 qizicm.fromxcm.fromy = 0; caipan = true;/恢复玩家响应 /end点击的位置有棋子 else/如果点击的位置没有棋子 endi = i; endj = j; boolean canmove = guize.canmove(qizi, starti, startj, endi, endj);/查看是否可走 if(canmove)/如果可以移动 caipan = false;/不让玩家走了 if(activity.issound) go.start();/播放下棋声音 24 qiziendiendj = qizistartistartj;/移动棋子 qizistartistartj = 0;/将原来处置空 starti = -1; startj = -1; endi = -1; endj = -1;/还原保存点 focus = false;/标志位设false chessmove cm = guize.searchagoodmove(qizi);/得到一步走法 if(qizicm.toxcm.toy = 8)/电脑吃了您的将 status = 2;/切换游戏状态为失败 if(activity.issound)/需要播放声音时 go.start();/播放下棋声音 qizicm.toxcm.toy = qizicm.fromxcm.fromy;/移动棋子 qizicm.fromxcm.fromy = 0; caipan = true;/恢复玩家响应 /end 之前选中过棋子 /end点击的位置在棋盘内时 /end游戏中时 return super.ontouchevent(event); guize 类是对这些规则进行封装,当玩家要走某步棋的时候需要通过该类判断是否可 走。 该类是象棋的规则类,其他类通过调用 canmove 方法给出起始位置与结束置,其他类 通过调用 searchagoodmove 方法得到最当然棋局最好的走法,而其中的 allpossiblemoves 方法得到的是当前棋局的所有的走法。 游戏的策划是游戏开发过和中的最重要的一个开发环节,只有写好了游戏策划才能继 续游戏开发,游戏策划是游戏开发的一个流程,把策划写好了就可以近照策划一步步进行 开发,可见策划的重要性。到此本游戏的功能已经基本开发完成,但是仍有很多方面需要 改进和优化。 5.3 棋子走法流程图 25 图 5-4 棋盘位置流程图 如图 5-4 是棋盘形状图,通过经 x,y 轴坐标的判断棋盘的大小,棋盘的落子位置先画 出棋盘横线,再计算棋盘的竖线,横线和竖线交叉的位置就是棋子的落点。这样整个棋盘 形状大小就出来了。棋盘的位置就是通过这种坐标实现的。游戏开始时各个棋子(车、马、 炮、象、士,将、帅、兵、卒)它们的开始的位置都确定了,通过坐标,机器可以准确的 将棋子移到指定的位置,人机对弈时,人点击棋子进行移动时,机器通过坐标计算同时进 行移动到人指定的位置,通过坐标可以计算出棋盘每个落子点的位置,再根据规则类计算 棋子落点是否符合象棋规则,如果不符合,就不能进行移动,还要注意特别的捌腿事件。 符合象棋走法规则也不一定能下,还要注意象、马捌腿,象心等关键地方。没有违反这些 规则才能下到指定的地点。 26 图 5-5 棋子移动流程图 如图 5-5 为人行走时棋子移动流程图,本游戏为人机对弈的象棋游戏,本图是人走的 流程图,人行走是用鼠键点击的方式,先用鼠标点击要走的棋子获取棋子对象,按下鼠标 拖到终点位置,由机器检测通坐标确定终点位置,再把棋子由起点位置移动到终点位置。 下一步由机器行走。 27 图 5-6 获取棋子流程图 如图 5-6 是人或者机器移动棋子时,获取棋子对象,使棋盘释放棋子对象,再将释放 传给棋盘,释放响应事件。 图 5-7 规则流程图 如图 5-7 是象棋规则图, ,第一步检查覆盖区域是否包含棋点,没有放回原处,如果有 再判断该点上否有棋子,如果没有棋子并且符合象棋规则就放在棋点上,不符合规则放回 原点,如果该棋点有棋子的话,再判断两棋子是否同一方,是同一方,该棋子放回原处, 如果不同,符合规则就放到棋点上并吃掉对方的棋子,如果不符合规则放回原处。 5.4 游戏模拟运行 如图 5-8 运行程序进入开机动画界面,也就是游戏欢迎页面左上角是国际象棋的标志, 右边是“中国象棋之博弈的艺术” ,还有两张图片和一个菜单按纽,点击菜单进入菜单栏。 这是一个登陆界面,介绍这是一个象棋游戏,便让人知道这是一个象棋游戏,挑战自己, 集中你的智慧,来享受博弈的乐趣,会勾起人们想下棋的欲望,被象棋游戏吸引,而且可 以单人下,在火车上休闲时都可以,特别一个人也可以下,避免传统象棋游戏非要两个人 下的弊端。可以让人在任何时间任何地点都可以下棋放松、休闲。 28 图 5-8 开机动画界面 如图 5-9 菜单页面如图所示有四个按钮开始游戏、关闭声音、帮助、退出游戏点击开 始游戏会进入游戏主界面,就可以实现人机对弈了。关闭声音是控制声音的播放,由关闭 声音可以切换到开机音乐,点击帮助按钮可以进入帮助页面,退出游戏按钮就是退出游戏。 图 5-9 菜单页面 如图 5-10 是开始游戏界面,就可以开始人机对弈了,黑方是机器一方,红方是自己 这一方,用鼠标点击方式进下棋,然后电脑自己反应走下一步。左下角和右下角有一个指 针,当指向黑方走时,机器走一步棋,当指向红方的时候,人走一步棋。还有左右下角分 别记录了黑方红方总共下棋的时间,声

温馨提示

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

最新文档

评论

0/150

提交评论