1、基于 Android 技术的中国象棋人机对弈游戏的设计与实现西安邮电大学毕 业 设 计(论 文)题 目:基于 android技术的中国象棋人机对弈游戏的设计与实现 基于 Android 技术的中国象棋人机对弈游戏的设计与实现目 录摘 要 .IABSTRACT .II1 绪论 .11.1 研究背景 .11.1.1中国象棋背景 .11.1.2 Android系统简介 .11.2 本论文研究意义 .32 设计相关技术理论 .52.1 游戏系统开发平台及搭建 .52.2 可行性研究 .63 游戏系统功能分析与设计 .73.1 界面的需求分析 .73.2游戏走棋需求设计分析 .73.3类框架的设计 .8
2、4 游戏系统的设计与实现 .94.1游戏界面的设计 .94.1.1 共有类 ChessActivity的实现 .94.1.2 辅助界面相关类的实现 .94.1.3 游戏界面相关类的实现 .94.2 中国象棋的规则及走法的实现 .104.2.1行棋规则 .104.2.2棋盘的表示 .224.3 游戏人机会话的实现 .234.3.1 着法的生成 .234.3.2 搜索算法 .244.3.3 局面评估 .265 游戏系统模块的设计实现 .285.1 欢迎界面 .285.2菜单界面 .285.3 帮助界面 .305.4游戏界面 .306 运行测试 .347 结束语 .35致 谢 .36参考文献 .37
3、附录: .38译文 .48基于 Android技术的中国象棋人机对弈游戏的设计与实现I摘 要中国象棋是一款智力休闲游戏,具有历史悠久而且拥有巨大的游戏爱好者群体,他们以中国象棋陶冶情操、锻炼智力、体验象棋带来的快乐,中国象棋还是一个老少皆宜的娱乐游戏。随着手持设备、智能手机的普及,搭载 Android操作系统的智能手机也已经走进了千家万户,当人们闲暇偶尔需要娱乐时,却发现没有实物象棋,该软件不失为一个很好的替代品,供大家进行娱乐享受,尤其是在现在这个快节奏的社会中 ,人们更满足于手机的使用,可以方便地随意移动,不像实物象棋那样静静的坐着。本论文通过实际应用软件的开发深入分析和研究 Androi
4、d开发技术。实现中国象棋的人机会话。本文实现了中国象棋在计算机中表示问题,基于 Android平台应用,人机对战模拟现实中的人人对战;讨论走棋规则和着法的实现等一系列问题,最终电脑能够通过产生着法,搜索,估计来产生一步最优的走棋,实现人机会话的目的。关键字:中国象棋,Android,智能手机,人机对战基于 Android技术的中国象棋人机对弈游戏的设计与实现IIABSTRACTChinese Chess is an intellectual casual games, has a long history and has a huge game enthusiasts groups, Chin
5、ese Chess edify sentiment, exercise intelligence, experience the joy of chess brought Chinese Chess is an entertainment for all ages games. With the popularity of handheld devices and smart phone, smart phone equipped with Android operating system has entered every household, when people leisure occ
6、asionally need entertainment, but found no physical chess, the software would be a good substitute for entertainment, especially in this fast-paced society, people are more satisfied with the use of mobile phones, you can easily move freely, unlike physical chess as sitting quietly.With the developm
7、ent for the practical application of software, Android development technology was deeply analyzed and researched to achieve human-machine chess battle of Chinese chess in this thesis. This article realization of the Chinese chess in the computer representation that the problem, based on the applicat
8、ion of Android platform, a series of questions were discussed about the man-machine war simulate and related playing chess rules and achieving chess moves. Finally, the computer products a best way for computer moves to achieve the purpose of man-machine war with the chess moving and searching and e
9、stimating.Keywords: Chinese Chess,Android,smart phone,man-machine war基于 Android技术的中国象棋人机对弈游戏的设计与实现11 绪论1.1 研究背景1.1.1 中国象棋背景中国象棋发展至今已有两千三、四百年的历史,早在战国时期就有正式的记载,堪称中国的国粹。中国象棋具有悠久的历史,深的人们的喜爱,象棋的爱好者也更是数不胜数,远在战国中国象棋便在贵族阶层广为流传,早期的象棋是象征着当时战斗场面的游戏,后来这种观念慢慢被改变,经过千年的流传不断的完善和改进,成为人们休闲娱乐、锻炼脑力思维不可获取的好方式。中国象棋体现的是一种
10、策略,方寸之间包含天地玄机,人生哲理,使人越是细玩越觉其味悠然深远。由于简单的行棋规则,趣味性强,便捷的载体,使得象棋成为雅俗共赏的竞技项目。因此,也成为流行极为广泛的棋艺活动。是我国正式开展的 78个体育项目之一,为促进该项目在世界范围内的普及和推广,在中国古代,象棋被列为士大夫们的修身之艺,现在则被视为怡神益智的一种有益的活动。有着数以亿计的爱好者。它不仅能丰富文化生活,陶冶情操,在棋战中,人们可以从攻与防、虚与实、整体与局部等复杂关系的变化中悟出某种哲理;更有助于开发智力,启迪思维,锻炼辨证分析能力和培养顽强的意志。象棋是中华民族的传统文化,不仅在国内深受群众喜爱,而且流传国外。1.1.
11、2 Android 系统简介Android 系统构架简介:Android 是一个基于 LinuxV2.6内核的交互性操作环境,同时它也是一个分层系统,Android 系统架构显示如下图 1.1。基于 Android技术的中国象棋人机对弈游戏的设计与实现2图 . A系统构架图应用层由所有的 Android 应用程序组成。其中包括电子邮件客户端,SMS 程序,地图,浏览器,联系人及其他。所有的应用程序都是用 Java编程语言编写的。应用框架层定义了 Android应用程序框架。所有的 Android应用程序都是基于应用框架的。Android 应用框架包括: 丰富及可扩展性的视图,可以用来建立一个美
12、观的用户界面,包括列表,网格,文本框,按钮,甚至是嵌入到 Web浏览器的应用程序。 一组内容提供商,使应用程序能够访问其他应用程序的数据(如电话簿),或共享自己的数据。 资源管理器提供了访问的非编码资源的途径,如本地化的字符串,图形,布局文件。 通知管理器允许所有应用程序显示定制的提示或通知在状态栏里。 活动管理器可以管理应用程序的生命周期,并提供一个通用的后台堆栈导航。库层包括了一套被各类 Android 系统组件使用的 C / C + +库并对应用程序框架提供支持。Android 的运行环境包括一套核心库和 Java 虚拟机(Dalvik 虚拟机) ,已经基于 Android技术的中国象棋
13、人机对弈游戏的设计与实现3由谷歌重新设计和优化来适合 Android平台。Linux 内核位于 Android 系统的底层并作为硬件和软件之间的一个抽象层。它提供了核心系统服务,如安全,内存管理,进程管理,网络协议栈和驱动模型。此外,一些底层功能如 Dalvik 虚拟机线程管理也依赖于 Linux内核。Android应用新特点作为一个新的操作系统,一方面,Android 可以受益于其他的成熟的操作系统的技术。另一方面,Android 也会改善出现在其他操作系统上的缺陷。对于开发商的前瞻性,Android 系统具有以下新的特点:允许一个应用程序被明确的定义。Android 应用程序中,所有的组件
14、可以通过系统独立启动,不过需要在一个 XML文件名为 AndroidManifest的文件中被声明。AndroidManifest做许多另外声明应用的组件的东西,包括: 定义一些应用所需要的用户权限,如互联网接入。仅定义应用程序需要的权限和应用程序必须执行的操作权限。 声明应用程序所需的最低 API级别。 定义硬件和软件的使用或应用程序所需的功能。 声明 API函数库的应用需要被对应的链接。资源和代码是分开的。在 Android中,所有的非代码资源是在 XML文件中定义。对于每一个包括在 Android 项目中的资源,SDK 构建工具定义一个唯一的整数 ID,它可以用来参考从应用程序代码的资源
15、或从 XML文件中定义其他资源。提供单独的资源可以从源代码中很容易地更新应用程序的不同特性,从而无需修改代码。同时通过提供一套替代资源集,使开发人员能够针对各种设备配置优化中的应用,如不同的语言和屏幕尺寸。Android作为一个完整的,开放的和自由的移动设备平台,凭借其强大的功能和良好的用户体验迅速发展成为最流行的移动操作系统。本文给出了关于 Android应用框架和 Android应用程序的主要工作的详细介绍。最后,推出了 android平台上的音乐播放器作为一个例子来说明了这个机制。1.2 本论文研究意义中国象棋是一项智力和策略的游戏,以往都是人和人下棋,现在有了计算机我们可以和计算机竞技
16、,人可以与计算机进行对弈。控制计算机的是人类,而人机会基于 Android技术的中国象棋人机对弈游戏的设计与实现4话综合性很强的一门边缘学科,它的中心任务是研究使计算机如何去做那些过去只能靠人的智力才能做的工作。因此,对游戏开发过程中的人工智能技术的研究自然也就成了业界的一个热门研究方向。本次论文的研究,主要是对中国象棋在 Android 系统中的兼容行性,对游戏界面可观性,游戏中人机会话的研究。对于游戏中的人机会话的要点:a 某种在及其上表示棋局的方法,让程序知道会话的状态;b 产生合法的走棋法则,使得会话双方公正,并可以判断人类对手是否乱走;c 从所有和法定的走法中选择最佳的走法的技术;d
17、 一种评估局面优化的方法,同上面技术配合做出智能选择;e 一个实现游戏的界面;通过对游戏的设计,来实现游戏中棋牌的表示,着法的生成,对着法的搜索,最后对局面的评估来实现中国象棋的人机会话。基于 Android技术的中国象棋人机对弈游戏的设计与实现52 设计相关技术理论2.1 游戏系统开发平台及搭建JDK 和 Eclipse:JDK 是 Sun 公司针对 java 开发员的产品。自从 Java 推出以来,JDK 已经成为使用最广泛的 java SDK。 JDK 是整个 java的核心。包括运行环境 Java工具和 Java基础类库。JDK 是学好 Java的第一步。安装 Eclipse的开发环境
18、需要 JDK的支持,如果没有 JDK,则启动 Eclipse时会报告错误。在 windows上安装 JDK非常简单首先在 Sun官网上下载,按照默认路径进行安装。安装完成之后,可以在检查 JDK是否安装成功。打开 cmd窗口,输入java version 查看 JDK的版本信息。出现类似下面的画面表示安装成功了:图 2.1 JDK 测试Eclipse 如果你还没有 Eclipse 的话,从官网上下载 Eclipse IDE for Java Developers 解压之后即可使用。Android SDKAndroidSDK 提供了在 windows 平台上的开发安卓应用程序的开发组件,也就是说
19、,不论读者使用什么样的平台都可以开发出安卓平台的应用软件,其中包含了基于 Android技术的中国象棋人机对弈游戏的设计与实现6安卓平台上开发移动应用的各种工具集。它不仅包括了安卓模拟器和用于 Eclipse 的安卓开发工具插件(ADT) ,而且包括了各种用来调试,打包盒在模拟器上安装应用的工具。安卓主要是以 java 语言为基础,用户可以使用 java 语言来开发 安卓平台上的软件应用。通过 SDK 提供的一些工具将其打包成安卓平台使用的 apk 文件,然后在使用 SDK 中的模拟器(Emulator)来模拟和测试软件在安卓平台运行情况和效果。安装安卓的 SDK,安装好 JDK 和 Ecli
20、pse 后,打开 Eclipse IDE。依次单击 Menu项中的 windows-Android SDK Manager 项,进入 Android SDK Manager 界面选择Tool 和需要的 Android 版本项进行更新安装。ADTAndroid 为 Eclipse 定制了一个插件,及 ADT(Android Development Tools) ,目的是为用户提供一个强大的综合环境用于开发 Android 应用程序,ADT 扩展了Eclipse 的功能,可以让用户快速的建立 Android 项目,创建应用程序界面,在基于Android API 的基础上添加组件,以及用 SDK 工
21、具集调试应用程序,甚至导出签名(或未签名)的 APKs 以便发行应用程序。安装 Android Development Tool plug-in,打开 Eclipse IDE。依次单击 Menu 项中的 Help-Software Update 项2.2 可行性研究本次毕业设计的题目是:基于 Android技术的中国象棋人机对弈游戏的设计与实现;主要是在基于 Android平台开发一个手持设备应用游戏,使得游戏具有兼容性和人机会话;并对整个系统分析,设计过程给出一个论证。中国象棋游戏是棋牌类游戏,体现的是一种策略。对于行棋走棋不同的棋子有不同走棋规则,走棋都必须按照走棋规则要求,双方轮换走棋,吃子,将军。本游戏设计无疑是模拟现实人人博弈,虚拟的替换了真实的棋子棋盘,由人来和电脑直接对弈;在一个人闲暇时也可以体验博弈的乐趣。该应用游戏的设计主要从以下几方面做起:系统流程分析、系统的功能设计、系统的数据结构设计。做好这些工作需要对 Android开发平台了解,并搭建平台;深入了解数据结构、Android 应用程序以及各种组件(API)库函数。