面向Android手机的象棋游戏开发_本科毕业论文.doc_第1页
面向Android手机的象棋游戏开发_本科毕业论文.doc_第2页
面向Android手机的象棋游戏开发_本科毕业论文.doc_第3页
面向Android手机的象棋游戏开发_本科毕业论文.doc_第4页
面向Android手机的象棋游戏开发_本科毕业论文.doc_第5页
免费预览已结束,剩余50页可下载查看

下载本文档

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

文档简介

pingdingshan university 毕业论文(设计)题 目: 面向android手机的 象棋游戏开发 院(系): 软件学院 原 创 性 声 明本人郑重声明:本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。毕业论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人承担。论文作者签名: 日 期: 关于毕业论文使用授权的声明本人在指导老师指导下所完成的论文及相关的资料(包括图纸、试验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属平顶山学院。本人完全了解平顶山学院有关保存、使用毕业论文的规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和借阅;本人授权平顶山学院可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为平顶山学院。本人离校后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为平顶山学院。论文作者签名: 日 期: 指导老师签名: 日 期: 面向android手机的象棋游戏开发面向android手机的象棋游戏开发摘 要随着人们对生活质量要求的不断提高,移动通信技术迅速发展,手机已经成为了人们生活中必不可少的智能工具。智能手机的问世,在全球范围内掀起了一阵阵的热潮,更加完美的用户体验使智能手机备受广大用户的青睐。在智能手机的众多功能中,手机游戏更是处于无可替代的主导地位。在中国,象棋因其可玩性高并且操作较为简单,而成为最受欢迎的棋牌类游戏之一。android的开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,因此,对软件从业人员来说,android平台具有无限的吸引力。面向android手机的象棋游戏将很容易收到人们的广泛喜爱。本文深入研究和分析了android平台下中国象棋的相关技术,并在该平台下设计和实现了面向android手机的象棋游戏。本文主要完成了以下工作:第一,对中国象棋需求分析及概要设计、详细设计进行了详细的阐述,并基于需求分析对游戏的菜单界面、屏幕绘制、时间控制、布局算法、音效等进行了设计。第二,为使用户有更好的交互界面,采用3d绘图来绘制游戏界面和棋盘棋子,运用一些精美的图片使游戏界面更整洁、美观。第三,结合中国象棋的规则、棋谱设计智能算法,使手机能够实现人机对弈。尽最大可能提高了用户体验和满意度,实现了一个具有一定棋力的中国象棋人机对弈程序。第四,在游戏开发过程中,尽量减少各种程序模块间的耦合性,改善了程序的架构和可维护性,优化游戏资源,占用系统内存更少。第五,对软件进行了测试,测试结果表明,软件运行情况良好,符合设计初衷。本游戏实现了手机上以android为平台的棋牌类益智游戏的开发,人机对弈的运行的方式由程序进行控制,具有一定的可玩性与趣味性。经过细心的调试和排错解决了大部分的问题。但我的水平实在有限,游戏有很多的不足,留下了很多遗憾,但我相信,随着时间的推移,个人水平的增长,我一定会使这个游戏更加智能化,也更加完善。关键词:android,中国象棋,人机对弈,智能手机平顶山学院本科毕业设计the development of chinese chess game for android mobile phoneabstractwith the continuous improvement of requirements of the life quality, mobile communication technology develops rapidly, and mobile phones have become the essential intelligence tools in peoples daily life. the advent of smart phones set off a worldwide boom. more perfect user experience makes smartphones favored by majority of users of all ages. among the various of functions of the smartphone, mobile games have the irreplaceable dominant position. in china, chinese chess is one of the most popular chess games. its playability is high and relatively simple to operate. the openness of the android architecture, not only has very good development, debugging environment, but also various extensible user experience so far, therefore, for software professionals, android has the infinite attraction. so a chinese chess game for android mobile phone would be easy spread and loved by most people.in this paper, in-depth study and analysis of the android platform chinese chess related technologies, and design and implement a chess game for android phones under the platform. the main research content in this paper is focusing on four parts as follows:firstly, demand for chinese chess analysis and outline design, detailed design was elaborated. then we designed the game menu interface, the screen drawing, time control, layout algorithm and sound effects based on the needs analysis.secondly, enable users to have a better interface, using 3d graphics to draw the game interface and board pieces, using some beautiful pictures to make the game interface more clean and beautiful.third, the combination of chinese chess rules, chess design intelligent algorithm, so that the phone can achieve human-computer chess. the maximum extent possible to improve the user experience and satisfaction, to achieve a chinese chess program that has a man-machine chess playing strength of.面向android手机的象棋游戏开发fourth, in the game development process, minimize coupling between modules of various programs to improve the programs structure and maintainability, optimizing game resources, occupy less system memory.finally, we tested the software operating condition on a real phone. the test results show that the software is running in good condition, and in line with the design of the original intention.the game developers realized on the phone to android as a platform for chess puzzle game, man-machine chess program run by a controlled way, with a certain degree of fun and interesting. after careful debugging and troubleshooting to solve most of the problems. but my level is limited, the game has a lot of deficiencies, leaving a lot of regret, but i believe that as time goes on, the level of personal growth, i must make this game more intelligent, and more perfect.keywords: android, chinese chess, human-computer interaction, smartphon平顶山学院本科毕业设计目 录第一章 绪 论11.1 研究背景11.2 研究目的和意义21.3 研究现状21.4 论文结构安排31.5 本文主要工作4第二章 相关技术简介52.1 面向对象程序设计方法52.2 android开发技术52.3 android开发环境72.3.1 安装和配置jdk82.3.2 安装eclipse和android sdk82.3.3 安装adt插件9第三章 游戏总体设计113.1 象棋的简介113.2 象棋比赛规则、胜负判定、行棋规则133.2.1 中国象棋比赛规则133.2.2 象棋胜负判定133.2.3 行棋规则133.3 棋子行走规则143.4 游戏示意图173.5 游戏各模块主要功能需求173.5.1 欢迎界面173.5.2 菜单界面183.5.3 帮助界面183.5.4 游戏界面183.6 走棋算法19第四章 游戏功能的设计与实现214.1 游戏相关类的介绍224.2 棋子主要功能的实现244.2.1 象棋棋子在棋盘定位实现244.2.2 玩家触屏操作的响应254.2.3 游戏画面的刷新274.2.4 游戏声音的实现284.2.5 走棋算法的实现294.4 游戏模拟运行图30第五章 总结语355.1 改进和优化355.2 总结35附 录37参考文献41致 谢43平顶山学院本科毕业设计第一章 绪 论1.1 研究背景随着移动通信的发展以及互联网向移动终端的普及,用户对移动终端的要求越来越高,而symbian、windows mobile、palm os等手机平台过于封闭,已经不适合市场的发展趋势,也不能很好的满足用户的需求,因此市场迫切需要一个开放性很强的平台1。android是一个基于linux核心的开放手机平台系统。与windows mobile、symbian等手机系统处在同一级别。对于设备制造商来说,android是一个免费的平台。android不受手机系统厂商的限制,平台上的应用程式可相容于各种型号的android 手机,免去为各种不同手机机型开发的困扰。android平台支援各种先进的网路、绘图、3d处理能力,可以用来提供更好的使用者体验2。android 在以linux为核心的基础上,提供了各种合用的函数库,和一个完整的应用程式框架。并采用较符合商用限制的apache 版权。在linux核心的基础上提供google自制的应用程式运行环境(称作dalvi,与sun的j2me不同),并提供基于eclipse 整合开发环境(ide)的免费、跨平台(windows、mac、os、x、linux)开发工具(sdk),便于应用程式开发者学习、使用。免费、熟悉的跨平台开发工具,让具备一些物件导向观念,或视窗程式开发经验的开发者能在一定时间内上手。从不同角度来说android 代表着一个崭新的开放原码系统平台、一个友善的免费应用程式开发环境、一个与世界各地的程式开发者,站在相同起跑点上的公平竞争机会3。自从google组建开放手机联盟以来,android操作系统在手机上的应用越来越被广大手机使用者接受,由于android系统开放源代码,这就为android平台上的开发提供了极大的便利,也方便了厂商开发拥有自己特色的操作系统,因此android平台上的各种应用的开发得到广大编程爱好者的喜爱。在android占据全球智能手机79%的市场份额的大背景下,任何一款出色的软件都会得到相当一部分用户的肯定。中国象棋具有悠久的历史,象棋的爱好者更是数不胜数,远在战国时代,象棋便在贵族阶层中广为流传,早期的象棋是象征着当时战斗场面的游戏,后来这种观念慢慢被改变,成了人们休闲娱乐中不可缺少的一部分。作为一款经典的益智游戏,一直以来都被众多的游戏爱好者喜欢,这个游戏男女老少皆宜。游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人的思维逻辑能力得到锻炼。本课题将象棋游戏运用与当今最流行的android平台,将所学到的理论与实践相结合,既巩固了所学到的知识,也对android平台有了更深一步的了解4。1.2 研究目的和意义android这个平台对于google对于大众的意义不在于手机本身,android存在的目的也不在于挑起手机操作系统之间的混战,而在于推动移动互联网产业链的迅速成型。具有开源特性的android平台打破了之前symbian、windows mobile等操作系统收取高额的授权费用的模式,使得智能手机成本大大的降低,而正是由于它开发源代码使得手机产生更多个性化的应用。同时,合作方能够在这里得到利润或者创造价值,手机软件行业得到维护协调发展。随着数字信息产品的普及和相关技术的提高,手机游戏从设计、开发等方面也有了长足的发展,尤其作为游戏一个分支的棋类游戏也在各个手机平台上得以实现,极大的丰富了用户的文化生活。用户在工作之余如乘坐火车、地铁以及候机等场合进行一些有意义的娱乐活动,这样手机游戏很可能成为人们消遣时间的首选。未来的手机游戏在智能手机和3g网络的基础上,可以达到更高更炫目的游戏效果。基于此,该选题设计实现面向android手机的象棋游戏能为象棋爱好者提供一个平台,随时随地进行象棋对弈,既打发了空余时间,又让人的思维逻辑能力得到锻炼,极大的丰富了用户的生活。通过本游戏的设计,掌握android手机应用开发技术和移动软件平台开发技术。在以java 语言为基础,结合android移动开发平台,对android知识有一定了解的基础上,利用android提供的sdk,完成在android平台上运行的中国象棋软件。而在设计过程中,android无疑为自己所学提供了一个广阔的平台,它加深我对编程技术的理解,熟悉软件编程的流程,提高自己的编程能力,为未来的就业打下坚实的基础。1.3 研究现状现代社会是一个科技与信息的时代,随着社会的发展,传统的中国象棋慢慢的被抛弃,现在已经处在一个边缘化状态,以前老人或孩子在大街小巷“将”“吃”的声音已经基本听不到了。那么作为中国的国粹,为什么如今会走下坡路呢?归根究底,我觉得最主要的有如下两个方面的原因:1.国家不够重视。近现代,国家已经慢慢淡化对传统文化的发展语培养,特别是当代,无论是在校园还是在社会上,对中国象棋的课程学习安排几乎没有,这直接导致了人们对中国象棋的淡忘和对兴趣的培养。2.现代人们都很忙。这主要是由于社会现状所引起的,人们每天已经没有时间来放松,特别是对于象棋这种伤筋又费神的事,更不愿把宝贵的时间浪费在这种事情上。人们更情愿花这些时间来上网、玩手机、旅游、亦或是睡觉。那么,展望未来,中国象棋,中国的国粹会怎样发展呢?近几年,手机和平板等移动终端突飞猛进的发展,使得软件开发这一行业也迅速得到崛起,近两年,android操作系统平台每年都可以诞生出几十万款手机软件。面向android手机的中国象棋游戏正是在这样的情况下应运而生,人们习惯了用手机或平板打游戏来消磨时间,中国象棋这个软件也越来越受到广大手机用户的欢迎和青睐,这对于中国传统文化的传承和发扬是一个幸事。所以,展望未来,中国象棋的发展其实就是软件行业的发展以及移动平台的普及5。目前的象棋游戏能够满足象棋爱好者的基本需求,实现人机对弈、人人对弈以及残局棋谱等功能。然而在满足应广大象棋爱好者的需要的同时,也存在很多的问题。很多版本的手机象棋画面太过简单,不太美观;有些版本的手机象棋占用系统资源太大,使游戏运行缓慢,不太流畅。1.4 论文结构安排整篇论文共分为五个部分,其主要内容安排如下:第一部分 绪论。介绍论文的研究背景、意义和现状。包括课题的背景资料简介、国内研究现状和发展趋势、课题设计的意义。第二部分 相关技术简介。主要介绍了本次设计所用到的知识、技术和开发环境。第三部分 应用程序的总体设计。这部分主要介绍了象棋的详细规则及胜负判定方法和棋子的行走规则。第四部分 功能的设计与实现。这部分主要介绍了游戏的界面、游戏中的逻辑处理以及该游戏今后的改进和优化。第五部分 结束语。对整篇论文加以总结与回顾以及以后的发展方向。1.5 本文主要工作第一,对中国象棋需求分析及概要设计、详细设计进行了详细的阐述,并基于需求分析对游戏的菜单界面、屏幕绘制、时间控制、布局算法、音效等进行了设计。第二,为使用户有更好的交互界面,采用3d绘图来绘制游戏界面和棋盘棋子,运用一些精美的图片使游戏界面更整洁、美观。第三,结合中国象棋的规则、棋谱设计智能算法,使手机能够实现人机对弈。尽最大可能提高了用户体验和满意度,实现了一个具有一定棋力的中国象棋人机对弈程序。第四,在游戏开发过程中,尽量减少各种程序模块间的耦合性,改善了程序的架构和可维护性,优化游戏资源,占用系统内存更少。第五,对软件进行了测试,测试结果表明,软件运行情况良好,符合设计初衷。第二章 相关技术简介2.1 面向对象程序设计方法java面向对象程序设计的基本思想是通过构造和组织对象来求解问题的。对象是很好理解的,任何一种物体都可以被认为是对象,例如,汽车就是一种对象,对象具有两个最基本的属性:具有一定的物质基础和一定的功能,这两种基本属性在java语言中表现为拥有一定的存储单元并具备一定的功能。理解了java的这种面向对象程序设计的基本思想之后,在以后的编程过程中,就应当构造人们容易理解的更接近于真实物理世界物体的对象。java面向对象程序设计的过程非常简单。这里介绍一种自顶向下的程序设计方法,首先构造一个类来处理需要解决的问题,然后根据已经拥有的类,分析和构造新的类,设法将问题分解下去,而最开始构造的类通过组织这些新构造的类、已有的类及由他们生成的实例来求解指定的问题。这个过程可以继续递归下去,用在新构造的类上,直到最后解决了指定的问题,例如java的应用程序和小应用程序都必须有一个类作为入口求解问题。在计算机语言中,面向对象的类一般具有三个基本特性:封装性、继承性和多态性,这三种特性进一步简化了java求解模型,提高了程序的复用性,节省了程序的代码量,从而提高了软件的生产率。2.2 android开发技术android平台是一组面向移动设备的软件包,它包含了一个操作系统、中间件和关键应用程序。开发人员可以使用android sdk(软件开发工具包)为这个平台创造应用程序。应用程序使用java语言编写并在dalvik之内运行。dalvik是一款量身定制的虚拟机,它专为嵌入式应用设计,运行在linux内核上层6 。android是基于linux内核的操作系统,早期由google开发,后由开放手机联盟开发。目前最新版本为android4.4。1.android架构 如下图2.1显示了android操作系统的主要组件。图2.1 android操作系统的主要组件2.linux内核android依赖linux 2.6版,提供核心系统服务:内存理、进程管理、网络组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。3.应用框架 android的核心应用程序就是依赖框架层次api开发的,程序员们可以充分使用这些api。应用架构设计的初衷是,简化组件复用机制,任何应用都能发布自己的功能,这些功能又可以被任何其他应用使用,当然要受来自框架的强制安全规范的约束。和复用机制相同,框架允许组件的更换6。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应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等7。android应用的构成和工作流程如图2-2:图2-2 android的构成2.3 android开发环境eclipse是开发android应用程序的首选集成开发环境。eclipse作为开源的开发环境,功能强大,易于使用。android提供了在eclipse上开发应用程序的adt插件(android development toolkit,adt),简化了android应用程序的开发、运行和调试4。eclipse是替代ibm visual age for java的下一代ide开发环境,根据eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发。更可贵的是,eclipse是一个开放源代码的项目,任何人都可以下载eclipse的源代码,并且在此基础上开发自己的功能插件。同时可以通过开发新的插件扩展现有插件的功能,比如再现有java开发环境中加入tomcat服务插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是eclipse的潜力所在8。安装android开发环境,首先需要安装支持java程序运行的开发工具包(java development kit,jdk),然后安装集成开发环境eclipse,最后安装android sdk和eclipse的adt插件。2.3.1 安装和配置jdk 下载jdk可以到oracle的官方网站下载,在浏览器中输入下面的网址/technetwork/java/javase/downloads/index.html,单击java se 7中的jdk download按钮进入下载页面,根据用户系统选择不同版本的jdk。安装过程中一般情况下保持jdk的默认设置即可,jdk会安装在c:program filejavajdk1.7.0目录下。在jdk安装完毕后,设置系统的环境变量,右键点击我的电脑 - 属性 - 高级,点击环境变量,在下面的“用户变量”处选择新建在变量名处输入 java_home变量值中输入刚才的安装目录 c:program filejavajdk1.7.0,点击确定后再新建一个变量名为classpath,并在其变量值中输入 %java_home%/lib/rt.jar;%java_home%/lib/tools.jar,点击完成后再找到path的变量,双击或点击编辑,在其变量值后加上如下值;%android_sdk_home%platform-tools;%java_home%bin;%java_home%jrebin。在桌面下点击 开始-运行,并输入cmd,然后在命令行提示符中输入java version,如果能够看到java version 1.7.0信息,就表示jdk已经安装成功。2.3.2 安装eclipse和android sdk在eclipse中开发android程序,还需要把android sdk与eclipse开发环境关联起来。为了给开发人员提供方便google提供了关联好的eclipse和sdk用户下载解压后即可直接使用。eclipse和android sdk可以到android官方网站下载,在浏览器中输入下面的网址/sdk/index.html/,单击download the sdk按钮进入下载界面,然后根据用户系统选择下载。下载的是一个zip文件,文件名为adt-bundle-windows-x86-20131030.zip,直接将zip文件解压到指定目录中即可,解压后目录中有sdk和eclipse两个文件夹。运行sdk文件夹下的“sdk管理器”(sdk manager.exe),sdk管理器运行后自动获取可下载的sdk列表和辅助工具列表,耐心等待后将显示所有可下载的内容,根据自己的需要下载相应版本的android和辅助工具(extras)中的全部内容。安装成功后,说有安装包的状态(status)将从not installed更改为installed。2.3.3 安装adt插件adt插件是eclipse开发环境的定制插件,为开发android应用程序提供了一个强大、完整的开发环境,可以快速的建立android工程、用户界面和基于android api的组建,还可以在eclipse中使用android sdk提供的工具进行程序测试,或对apk文件进行签名等。在eclipse和android sdk正确安装后,就可以下载安装adt插件了。adt插件的安装方式有两种:1.在线下载安装进入安装插件的界面,点击“add”按钮,在“location”文本框中填入一下网址:/android /eclipse/,然后将“developer tools”全部选中,单击“next”按钮,adt安装完成之后会提示重启eclipse,同意重启即可完成adt的安装。2.离线安装下载adt的离线安装包,点击“location”后的“archive”,找到下载好的adt路径。后续操作如同在线安装的步骤一样。从而完成adt的安装。在主菜单中点击“windown”下的“perferences”选项,进入配置, 如果adt正确安装了,那么在“preferences”界面的左侧会出现“android”一栏,点击“android”选项,此时右侧单击“browse”按钮,选择android sdk解压后的路径。路径选择正确之后,会在下方显示当前sdk中包含的版本,然后点击“ok”按钮,完成sdk配置10。第三章 游戏总体设计3.1 象棋的简介1.棋盘及布局 (1)棋盘棋子活动的场所,叫做“棋盘”,在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共九十个交叉点棋子就摆在这些交叉点上。中间第五、第六两横线之间未画竖线的空白地带,称为“界”,整个棋盘就以“河界”分为相等的两部分;两方将帅坐镇、画有“米”字方格的地方,叫做“九宫”。如图3-1所示:图3-1 象棋棋盘(2)棋子象棋的棋子共三十二个,分为红黑两组,各十六个,由对弈双方各执一组,每组兵种是一样的,各分为七种:红方:帅(1)、仕(2)、相(2)、车(2)、马(2)、炮(2)、兵(5)黑方:将(1)、士(2)、象(2)、车(2)、马(2)、炮(2)、卒(5) 2.走棋规则对局时,由红棋的一方(即玩家)先走,双方轮流各走一着,直至分出胜、负、和,对局即终了。轮到走棋的一方,将某个棋子从一个交叉点走到另一个交叉点,或者吃掉对方的棋子而占领其交叉点都算走一着。双方各走一着,称为一个回合。各种棋子的走法(1)帅(将):帅和将是棋中的首脑,是双方竭力争夺的目标。它只能在“九宫”之内活动,可上可下,可左可右,每次走动只能按竖线或横线走动一格。帅与将不能在同一直线上直接对面,否则走方判负。(2)仕(士):仕(士)是帅(将)的贴身保镖,它也只能在九宫内走动。它的行棋路径只能是九宫内的斜线。(3)相(象):相(象)的主要作用是防守,保护自己的帅(将)。它的走法是每次循对角线走两格俗称“象走田”。相(象)的活动范围限于“河界”以内的本方阵地,不能过河,且如果它走的“田”字中央有一个棋子,就不能走,俗称“塞象眼”。(4)车:车在象棋中威力最大,无论横线、竖线均可行走,只要无子阻拦,步数不受限制。因此,一车可以控制十七个点,故有“一车十子寒”之称。(5)炮:炮在不吃子的时候,走动与车完全相同。吃子的话,必须隔着一子。(6)马:马走动的方法是一直一斜,即先横着或直着走一格,然后再斜着走一个对角线,俗称“马走日”。马一次可走的选择点可以达到四周的八个点故有“八面威风”之说。如果在要去的方向有别的棋子挡住马就无法走过去俗称“蹩马腿”。(7)兵(卒):兵(卒)在未过河前,只能向前一步步走,过河以后,除不能后退外,允许左右移动,但也只能一次一步。 3.吃子任何棋子走动时,如果目标位置上有对方的棋子,就可以把对方的棋子拿出棋盘,再换上自己的棋子即“吃子”。只有炮的吃子方式与其他子不同,炮与被吃子之间必须隔一个棋子,进行跳吃,俗称“架炮”或“炮打隔子”。4.将军、应将、将死、困毙 一方的棋子攻击对方的帅(将),并在下一着要把它吃掉,称为“将军”,或简称“将”。被“将军”的一方必须立即“应将”,即用自卫的着法去化解被“将”的状态。如果被将军而无法“应将”,就算被“将死”。轮到走棋的一方,帅(将)虽没被对方“将军”,却被禁在一个位置上无路可走,同时己方其它棋子也都不能走动,就算被“困毙”11。3.2 象棋比赛规则、胜负判定、行棋规则3.2.1 中国象棋比赛规则1.基本规则:遵循友谊第一,比赛第二的原则,讲究棋风、棋德,赛出风格,比出水平。2.时间规定:比赛时用秒表或手表计算双方走棋时间。每方走一着棋的时间不得超过秒,如有一着棋超过时间,判负。3.对弈:在对局时,由执红棋的一方先走,双方轮流各走一着,直至分出胜负或走成和棋为止12。3.2.2 象棋胜负判定战争不管再怎么惨烈,也在总会有胜败之分,而一局象棋不管怎么走到最后其结局不外乎这三种:胜、负、和 ,那么象棋对胜负和的判断是怎样的呢?对局时,一方出现下列情况之一,就算输棋,对方得胜:1.帅(将)被对方将死2.帅(将)被将军,无法避免地同对方将(帅)直接对面3.被困毙4.同一局棋技术犯规两次判负5.自己宣布认输对局时,出现下列情况之一,就算和棋:1.属于理论上公认的双方均无取胜可能的局势;2.提议作和,应使双方机会均等。只要是一方提和,另一方已宣告同意,双方都不许反悔。3.双方走棋出现循环反复已达三次,符合棋例中不变作和的有关规定,可由任何一方提议作和,经审查局面属实,即使另一方不同意,裁判员也有权判为和棋。如双方都没有提和,而循环反复局面还在延续,裁判员有权不征得双方同意就决定判和13。3.2.3 行棋规则1.一着棋走了以后,不得再予更改。落子生根,以手离开棋子为准。2.触摸自己方面的哪个棋子,就应走哪个棋子,除非所触摸的那个棋子,按行棋规定根本不能走,才可以另走别的棋子。3.触摸对方的棋子,就必须吃掉那个棋子,只有当己方的任何棋子都无法去吃时,才可以另行走子。4.先触摸自己的棋子,后又触摸对方的棋子,处理顺序如下:前者必须吃掉后者无法吃掉时,必须走动前者前者无法走时,必须用别的子吃掉后者别的棋子也无法吃掉后者。另行走子。总之,象棋棋术可以千变万化,但是象棋的基本规则一定不可以改变,象棋就是要在规则的基础上,发挥自己的思维,在棋盘上走出精彩的每一步14。3.3 棋子行走规则有句俗语曰:无规矩不成方与圆,没有规矩,大家各执一词,事情就办不好,没有规则,大家各行其是,社会就会乱套,象棋就像一个微型的社会,象棋的每一种棋子都各自的走法,每一种棋子都要遵循自己的走法,否则象棋就无法走下去15。1.车行走规则如图3-2是车行走规则图,首先车的位置在棋盘四角,车走直线分为横向和纵向,如果走横向,先判断终点有没有落子,如果没有,就可走,如果有落子,再判断是敌方还是自己的棋子如果是敌方的棋子可以落到对方位置并且吃了对方的棋子,如果是自己的棋子就不可走。纵向也同理。图3-2 车行走规则图2.马行走规则如图3-3是马行走规则图,首先判断马在棋盘上的位置,再判断马行走的规则,马行日,就是行走日的对角线,当然这个日子也可以是横着的,当然还要注意马别腿的走法,如果别腿就不可走,判断别腿是看马走的日子中间一条横线上紧挨着马的位置是否有棋子,如果有棋子,就是马别腿,不可走,如果没有棋子就是可以走了。图3-3 马行走规则图3.士行走规则如图3-4是士的行走规则图,士位于九宫格中,起始位置在帅或将的旁边与相的旁边,士的走法首先不能出九宫格,还有只能走斜线,实际上可走的位置只在五个地方,九宫格的四角和中心,并且判断不能有自己一方的棋子才可走。中国象棋的“士”是宫廷卫士,司“九宫”安全,不离“帅(将)”左右。图3-4 士行走规则图4.炮行走规则如图3-5是炮行走规则图,炮的走法和车的走法类似,也是可以横向走和纵向走,当终点没有棋子时,可以走到终点位置,但是炮的吃子和车不同,车是横向纵向遇到敌方棋子直接吃,但是炮不同,炮要隔一颗子吃后面的棋子,当然必须在一条直线上才可以,隔的子可以是对方的也可以是自己的。图3-5 炮行走规则图5.象行走规则如图3-6是象行走规则图。象走田,象行走必须以田的对角线行走,还有象不能过河,只能在自己一方行走,象行走也要注意别腿地方,象走田。如果田的中心也就是象心有棋子的话,象就别腿了,就不能到达终点。根据象的起始位置还有不能过河,象能走位置只有七个地方。图3-6 象行走规则图6.兵行走规则如图3-7为兵行走规则图,兵的行规则是未过河只能往前走,不能后退或者左右走,如果兵过了河,则可以左右行走但是还是后退,无论过不过河,都只能每次行走一步。图3-7 兵(卒)行走规则图7.将或帅行走规则如图3-8是将(帅)行走规则图。将(帅)作为双方的指挥者,首位置在两个士的正中心,将的行走范围也是不能出九宫格,而且在九宫格内只能走直线,并且每次只能行走一步。将(帅)是象棋游戏的关键,一旦将(帅)这颗子被对方吃了,整个游戏就代表输了。图3-8 将(帅)行走规则图3.4 游戏示意图象棋游戏主要功能划分:从欢迎界面开始到菜单界面,从菜单界面可以进入游戏界面,也可进入帮助界面,而从游戏界面可直接返回菜单界面,从帮助界面也可返回菜单界面,从菜单界面可以直接退出游戏。图3-9 游戏示意图3.5 游戏各模块主要功能需求3.5.1 欢迎界面1.可以设计一张或一些有创意的的图片,来完成欢迎界面动画效果的实现。2.实现欢迎界面音乐特效,渲染游戏气氛,衬托游戏氛围。3.按钮的实现,进入菜单界面。4.按键音的实现,可以选用一些个性的声音音效。3.5.2 菜单界面1.四个功能按钮的实现,可以从这里进入游戏界面、帮助界面,设置界面以及退出游戏。2.按键音的实现,可以选用一些个性的声音音效。3.5.3 帮助界面1.个性图片作为画面背景,起到赏心悦目的效果。2.按键音的实现,可以选用一些个性的声音音效。3.按钮的实现,返回菜单界面。3.5.4 游戏界面1.玩家(1)点击棋盘以外,棋子不移动。(2)棋子不是己方棋子,不移动。(3)不是玩家回合,不移动。(4)棋子移动不符合规则,不移动。2.机器(1)不是机器回合,不移动。(2)搜索所有可走棋子,选择其中一种,实现棋子移动。3.音效(1)走棋音效的实现。(2)游戏背景音乐的实现4.玩家机器思考时间的实现,计算玩家机器各自思考的时间。5.按键的实现,可以返回菜单界面,声音的关闭与开启。6.吃子,若一方走棋符合规则,且能吃子,则去掉另一方棋子,实现吃子功能。7.胜负判定,若一方被另一方吃掉将或帅,则播放胜利或失败音乐,出现胜利或失败画面3.6 走棋算法搜索算法是人工智能的一个基本问题。算法的好坏直接关系到智能系统的性能与效率,也是人工智能领域核心问题之一。在计算机博弈中常用的算法有极大极小值算法、alpha-beta搜索算法、负极大值算法。1.极大极小值算法香农在1950年提出了极大极小搜索算法,这也是最早博弈搜索算法,当今很多搜索算法都是建立在该搜索算法的基础上的。对于博弈双方而言,一方胜利,一方失败,博弈双方都希望自己的利益最大化,而让对方利益最小化。极大极小算法是在博弈时用到的最基本的方法,在博弈的过程中,双方都要达到的目的是对立的,对红方有利的形式正好是对黑方不利的形式,我们给每一个节点都会有一个评估,对红方有利的值越大越好,反正对黑方有利的值越小越好。红方下棋时,会选择所有子节点中取之最大的节点,相反的,该黑方下棋时,选择所有子节点中取值最小的节点16。2.负极大值算法1975年knuth和moore提出,它是极大极小算法的一种改进。其核心思想是:一方的利益最大化必然使另一方利益的负值最大化。与极大极小算法相比,该算法显得更加简洁优雅,它将博弈双方的选择方式统一,有一方取极大值,而另一方取极小值,消除了双方的差别,在博弈的双方都取极大值。3.alpha-beta搜索算法如果只是单纯的使用极大极小算法或者负极大值算法,就会在决定的深度下,搜索每一个分支。由于这样做的搜索量是非常巨大的,必然导致搜索的时间大大浪费,算法效率会降低。我们根据前一个分支得到的结果,在对下一个分支进行搜索的过程中可以确定这个分支有没有必要再进行下去。这就是alpha-beta搜索算法的基本思想,这种算法可以减少很多不必要的分支搜索。alpha-beta搜索算法,有效的克服了极大极小算法冗余节点的缺陷,并且大大减少了博弈树的规模16。以上这些算法都涉及人工智能方面,对于本文来说,太复杂,太难实现,因此,本文只有退而求其次,选择一个简单的算法,实现机器的按规则移动:当机器走棋时,先遍历其棋子数组,如有棋子且为黑方棋子,判断它所走的每一步,将其存储到list中。当数组遍历完成后,从list随机抽取一种走法,此时,调用chessmove,获取棋子的信息,实现棋子的移动。通过此算法可以实现机器棋子的移动,优点是能够实现人机交互,让人和机器实现基本的走棋功能。存在的不足是机器算法过于简单,不能通过下棋来提高下棋人的水平,趣味性也大大降低,不过这也是本文以后的一个发展方向,将来等待进一步改进。第四章 游戏功能的设计与实现在游戏开发阶段,首先确定“面向android的象棋游戏开发”的工程名为chess,根据程序模块设计的内容,建立chess工程。chess工程源代码的结构如图4-1所示:图4-1 项目结构图android主要结构简介:1.src:存放项目源代码。2.gen:存放r.java文件,属于只读模式,不能更改。3.res:存

温馨提示

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

评论

0/150

提交评论