基于Android平台的中国象棋对战游戏本科毕业设计(论文)(36页).doc
-
资源ID:37152027
资源大小:425.50KB
全文页数:35页
- 资源格式: DOC
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于Android平台的中国象棋对战游戏本科毕业设计(论文)(36页).doc
-基于Android平台的中国象棋对战游戏本科毕业设计(论文)-第 26 页本科毕业设计论文基于Android平台的中国象棋对战游戏毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订摘 要中国象棋是一款休闲智力游戏,历史悠久,且拥有极大的玩家群体,他们以中国象棋陶冶情操,锻炼智力,体验象棋带来的快乐,尤其中国象棋还是一个老少皆宜的娱乐游戏。随着智能手机的普及,搭载Android操作系统的智能手机也已经走进了千家万户,当人们偶尔需要娱乐时,却发现没有实物象棋,该软件不失为一个很好的替代品,供大家进行娱乐享受,尤其是在现在这个快节奏的社会中,人们更满足于手机的使用,可以方便地随意移动,不像实物象棋那样静静的坐着。现在的智能手机已经能够很好的支持自建无线局域网络,充当起无线路由器的角色,因此任意两台支持wifi的Android设备都可以轻松的实现连接对弈。而且Android开发越来越受到广大开发爱好者的青睐,因此本软件用到了Android开发中的Activity组件、NFC近场通讯技术、高级绘图技术、基于WIFI分配的IP地址的Socket通信功能等。NFC技术作为一个早已被广泛应用的技术,得到了大家的认可,而在Android操作系统的设备上,NFC却是刚刚起步,具有很大的发展潜力,NFC技术可以实现设备之间短距离的信息快速传递。WIFI功能也为手机间的通信提供了方便,Socket通信只需要考虑的应用层次上的开发,而不需要去考虑具体的底层实现方法。微信的摇一摇红遍了全国,获得了广大Android发烧友的喜爱,因此本软件业开发了摇一摇功能,采用的却是与微信不同的实现方式。综合考虑,中国象棋游戏对战平台是基于Android操作系统的应用软件,使用了多种技术来予以实现的,利用不同的技术提高平台的应用性和游戏的可玩性。关键字:Android,NFC,WIFI,Socket通信,中国象棋游戏ABSTRACTChinese Chess is a casual brain game with long history and great gamers.They play Chinese Chess to Influences the sentiment and improve their intelligence,and enjoy the happiness that Chinese Chess takes to.Especially Chinese Chess is still a fun game for young and old.With the popularity of smart phone,more and more people have smart phone with Android operating system.When people occasionally need to play Chinese Chess without real Chinese Chess for playing,this software could be a good succedaneum of real Chinese Chess.Especially in this fast-tempo society,people are more satisfied with the use of mobile phone.Because mobile phone can be used in anywhere,not like the real Chiness Chess what people must sit quietly to play.Now the smart phone has been able to support to bulid wireless local area network,serve as a wireless router role.So every two smart phone with Android operating system and wifi function could relaxed play Chinese Chess game with another people.And the development of Android application is more and more important to application developers. Many new technologies of Android operating system have been used in this software,such as components of Activity, Near Field Communication,advanced mapping technology and socket communication method that based on IP address of WIFI etc. Near Field Communication has been widely used for a long time,and has been accepted by many people.But it just started in mobile phone that used Android operating system,it has great development potential in this area. Near Field Communication could be used to achieve the rapid passing of the short distance between any two devices.WIFI function is convenient for communicating between mobile phones.It is particularly important that socket communication only needs to consider the application level for development,without needing to consider the specific underlying implementation.The function of shaking your mobile phone of weixin is popular all around China. It is great favourite of majority of Android enthusiastic fan.So in this software I added this new function of shaking your phone,but I used a kind of different technology from weixin.Generally speaking,this against platform of Chinese Chess game is an application based on Android operating system,and used a variety of techniques to be implemented.It used different technology to improve applied and gamelay of this platform.KEYWORDS:Android,NFC,WIFI,Socket communication,Chinese Chess目 录摘 要IABSTRACTII第一章绪论11.1研究背景11.1.1 Android系统简介11.1.2中国象棋简介21.1.3局域网通讯简介31.1.4 NFC近场通讯简介31.2研究意义31.3研究现状41.3.1 Android系统现状41.3.2局域网Socket通讯现状41.3.3 NFC近场通讯技术现状41.4论文结构5第二章 中国象棋游戏对战平台架构设计62.1 运行平台62.2 中国象棋游戏对战平台架构设计7第三章 中国象棋游戏规则和走法设计93.1 中国象棋界面设计93.2 中国象棋规则及走法设计113.2.1 中国象棋规则及走法113.2.2 走法设计123.3 中国象棋判输赢方法的设计133.3.1 红方胜133.3.2 黑方胜133.3.3 和棋14第四章 中国象棋基于WIFI的通讯机制154.1 Socket通讯简介154.2 基于TCP协议的Socket通信154.3 基于UDP协议的Socket通信164.4 Socket通信在开发中的应用17第五章 中国象棋游戏快捷对弈机制195.1 短距离通信技术简介与对比195.1.1 蓝牙传输195.1.2 红外线传输195.1.3 NFC传输195.1.4 短距离通信技术对比195.2 NFC通信工作模式205.2.1 卡模式(Card emulation)205.2.2 点对点模式(P2P mode)205.2.3 读卡器模式(Reader/writer mode)215.3 NFC功能模块的设计与实现215.3.1 读卡器模式功能的设计与实现215.3.2 点对点模式功能的设计与实现22第六章 中国象棋游戏对战平台的开发实现256.1 Android开发简介256.1.1 Android系统开发环境搭建256.1.2 Android系统开发初探256.2 游戏平台的构架与设计276.2.1 WIFI控制模块的设计276.2.2 欢迎界面模块的设计和实现286.2.3 聊天室模块的设计与实现296.2.4 玩家列表模块的设计与实现306.2.5 聊天室模块与玩家列表模块的结合326.3 功能模块的结合33第七章总结34参考文献35致谢36毕业小结37第一章 绪论1.1研究背景自从谷歌组建开放手机联盟以来,Android操作系统在手机上的应用越来越被广大手机使用者所接受,由于Android系统开放源代码,这就为在Android平台上的开发提供了极大的便利,也方便了厂商开发拥有自己特色的操作系统,因此Android平台上的各种应用的开发得到了广大编程爱好者的喜爱。在Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%的大环境下,任何一款出色的软件都会得到相当一部分用户的肯定。中国象棋具有悠久的历史,经过几千年的流传不断地完善和改进,深得人们的喜爱,成为人们休闲娱乐、锻炼脑力思维的好方式。1.1.1 Android系统简介Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携式设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机,2005年由Google收购注资,并组建开放手机联盟进行操作系统的开发和改良,逐渐扩展到平板电脑及其他领域中。由于Android操作系统的开放性和可移植性,它可以被用在大部分电子产品上。包括:智慧型手机,上网本,平板电脑,个人电脑,笔记本电脑,电视,机顶盒,MP3播放器,MP4播放器,掌上游戏机,家用主机,电子手表,电子收音机,耳机,汽车设备,导航仪,CD机,VCD机,DVD机,机顶盒以及其他设备。Android操作系统大多搭载在使用了ARM架构的硬件设备上。但是同样也有支持X86架构的Android操作系统,比如Google的Google TV就是使用一个特别定制的X86架构版本的Android操作系统。Android操作系统的系统架构和其它操作系统一样,采用了分层的架构,分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。如图1-1所示为Android应用程序的系统架构,蓝色区块代表应用程序、管理与服务组件;绿色区块代表数据库组件;黄色区块代表操作系统的执行时期组件;红色区块代表系统核心与驱动组件。图 1-1 Android结构图Android是以Linux为核心的手机操作平台,作为一款开放源代码的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。1.1.2中国象棋简介南宋诗人刘克庄长达240字的五言古诗象弈中写到“小艺虽难精,上智有未解。君看桔中戏,妙不出局外。屹然两国立,限以大河界。三十二子者,一一俱变态。远砲勿虚发,冗卒要精汰。昆阳以象奔,陈涛以车败。匹马郭令来,一士汲暗在。”,这些语句都很形象生动地描述了中国象棋以及棋盘、棋子和着法。中国象棋发展至今已有二千三、四百年的历史,早在战国时期就有正式的记载,堪称中国的国粹。中国象棋体现的是一种策略,方寸之间包含天地玄机,人生哲理,使人越是细玩越觉其味悠然深远。简单的棋规,便捷的载体,使得象棋成为雅俗共赏的竞技项目。然而现在的社会环境下,人们高度依赖于网络,网络上的娱乐方式千变万化,中国象棋在年轻人的心中已渐渐的失去魅力,因此培养人们对国粹中国象棋的兴趣尤为重要。1.1.3局域网通讯简介接入局域网内的终端都会获得一个IP,因此终端的通讯就可以以IP为桥梁进行传输,只需考虑应用层上的实现,无需考虑底层硬件等。基于IP的通讯最基本的就是Socket通讯方式,Socket通讯又根据协议的不同分为TCP和UDP两种方式。TCP协议通讯需要维护客户端与服务端之间的连接,UDP协议则不需进行客户端和服务端维护,并且不存在客户端和服务端,通讯双方处于对等的状态。1.1.4 NFC近场通讯简介近场通讯(Near Field Communication,NFC),又称近距离无线通讯,是一种短距离的高频无线通讯技术,允许电子设备之间进行非接触式点对点资料传输,在十厘米(3.9英吋)内,交换资料。NFC采用主动和被动两种读取模式。NFC的工作模式分为卡模式(完全模拟一张采用RFID技术的IC卡)和点对点模式(类似于红外和蓝牙实现数据点对点传输)以及读卡器模式(作为非接触读卡器使用,可读取电子标签)。1.2研究意义当前android 市场中的游戏多为单机版的小游戏或者是网络游戏,单机游戏缺乏互动性,而网络游戏又因为消耗宝贵的上网流量而不太受大家的欢迎,难以推广普及,而局域网对战的游戏则刚好弥补了这两者的不足,即可以和朋友互动娱乐,又不耗费流量。本软件采用两种通讯方式,即基于IP的Socket通讯和NFC近场通讯技术。传统的Socket通讯技术为大家所熟知,也是作为主要的通讯方式进行操作的。作为近场通讯的NFC,是比较新颖的技术,其操作的便捷性也深的广大用户的喜爱,因此本软件也部分采用NFC,增加娱乐性和便捷性的同时,也可以验证NFC通讯技术在android手机上的应用。1.3研究现状1.3.1 Android系统现状Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。Android操作系统也在不断地进行更新,添加更多的新技术支持的功能,完善已有的功能,android从开发至今已经历的版本如下:纸杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松饼(Android 2.0/2.1),冻酸奶(Android 2.2),姜饼(Android 2.3),蜂巢(Android 3.0),冰激凌三明治(Android 4.0),而且新一代的果冻豆(Android 5.0)也即将面世。1.3.2局域网Socket通讯现状方便终端之间通讯而开发的Socket通信方法目前发展的臻于完善,大部分的开发语言都能够实现。常用的Socket有两种类型,流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。1.3.3 NFC近场通讯技术现状NFC近场通讯技术作为一种新兴的技术,从面市之初就有了快速的发展,不过目前相对而言仍处于初级阶段,大众并不是很熟悉,不过越来越多的手机终端开发使用了支持NFC功能的芯片和手机,使得这一技术可以很快的被大家应用接受。为了推动 NFC 的发展和普及,飞利浦、索尼和诺基亚创建了一个非赢利性的行业协会NFC 论坛,促进 NFC 技术的实施和标准化,确保设备和服务之间协同合作。目前,NFC 论坛在全球拥有 70 多个成员,包括:万事达卡国际组织、松下电子工业有限公司、微软公司、摩托罗拉公司、NEC 公司、瑞萨科技公司、三星公司、德州仪器制造公司和 Visa 国际组织。NFC具有成本低廉、方便易用和更富直观性等特点,这让它在某些领域显得更具潜力NFC通过一个芯片、一根天线和一些软件的组合,能够实现各种设备在几厘米范围内的通信,而费用却是相对比较低廉的。如果NFC技术能得到普及,它将在很大程度上改变人们使用许多电子设备的方式,甚至改变使用信用卡、钥匙和现金的方式。但它的目标并非是完全取代蓝牙、Wi-Fi等其他无线技术,而是在不同的场合、不同的领域起到相互补充的作用。1.4论文结构本文详细讲解了Android平台上的软件开发,以及与新技术的搭配使用,包括软件开发环境及平台等的搭建,硬件的介绍,新技术如何在系统中完美的应用。并根据开发过程中遇到的一些问题,提出自己的解决办法,提出系统开发中的不足,指明今后的研究方向。本文共分为六章:第一章绪论,讲述了android操作系统的大环境,以及系统中应用到的技术和中国象棋的简介等。第二章中国象棋游戏对战平台架构设计,介绍了平台的运行物理环境媒介以及软件的逻辑设计模型。第三章中国象棋游戏规则和走法设计,系统全面的介绍了中国象棋游戏的玩法以及代码实现时的设计思路和算法,具体功能的实现等。第四章中国象棋游戏基于WIFI的通讯机制,介绍系统中使用到的无线局域网内部的通讯模式:Socket通讯方法,以及系统中的实际实现方法和功能。第五章中国象棋游戏快捷对弈机制,详细介绍了NFC近场通讯技术,以及该技术在系统中的应用。第六章中国象棋游戏对战平台的开发实现,先介绍了Android SDK开发的一些知识,然后融合以上使用的技术,完美实现中国象棋游戏对战平台的开发工作。第七章总结,总结了中国象棋游戏对战平台的开发,对全文进行概括性的论述。第二章 中国象棋游戏对战平台架构设计2.1 运行平台中国象棋游戏对战平台是基于Android操作系统的应用开发,运行于支持Android操作系统2.1以上版本的终端设备上,而目前Android操作系统主要运行于手机和平板电脑两大平台之上。平台的运行需要连接无线网络,即WIFI,而对于Android2.1以上的操作系统都是支持WIFI功能的,因此需要无线路由器来搭建一个无线局域网络,而Android系统实现了自建无线网络的功能,就相当于一个路由器,只是作为路由器的终端设备是无线网络的网关,通讯中具有特殊性。设备的连接如图2-1所示。图2-1 设备连接示意图图中可以看到,无线路由器、Android操作系统平板电脑和Android手机均可以作为无线路由器使用,建立无线局域网络,用以使程序进行通讯。而接入无线局域网络的终端设备有Android操作系统平板电脑和Android操作系统智能手机两种,具有等价的运行地位。由于Android设备的屏幕分为标屏和宽屏两种,因此程序设计时需要针对不同的屏幕进行设计,需要准备两套资源文件进行适应,给程序的设计增加了难度。为了减轻开发者开发的难度,本软件只针对采用宽屏标准的终端设备进行设计,对于采用宽屏幕标准的任意分辨率的终端设备都可以正常运行。2.2 中国象棋游戏对战平台架构设计中国象棋游戏对战平台的开发,目的是实现一个平台,方便玩家在此寻找玩家进行中国象棋对弈,并可以实现最基本的文字聊天功能,系统的逻辑设计模型如下图2-2所示。图2-2 中国象棋游戏对战平台逻辑模型进入对弈界面采用多种方法相结合来实现的,采用了NFC认证快捷进入对弈的机制、基于加速度感应器的快速摇一摇配对、手动配对三种方法。进入对弈界面的架构设计逻辑模型如图2-3所示。图2-3 进入对弈界面过程逻辑设计模型图2-3中B代表被动接收NFC配对信息的终端设备创建新的游戏房间,A代表主动点击NFC配对的终端设备进入响应B创建的房间;C、F代表玩家直接响应已存在的游戏房间,D、E代表玩家创建新的游戏房间;由图可以看出,NFC快捷配对,只需要玩家一方点击配对按钮,然后双方相互靠近,即可完美实现快速配对;摇一摇配对,开启摇一摇功能后,快速摇晃一下设备,即可快速进入对弈界面,设计原理是:若玩家列表中存在处于“等待中”状态的玩家,则配对成功进入游戏对弈,若不存在处于“等待中”的玩家,则自己创建一个新的房间,进入“等待中”状态;手动配对,点击菜单中的“创建房间”按钮,创建新的游戏房间,进入“等待中”状态,点击列表中处于“等待中”状态的玩家,即可响应进入对弈。当处于“等待中”状态和“闲逛中”配对成功后,“闲逛中”状态的玩家也进入游戏对弈界面,然后双方玩家状态都更新为“游戏中”。第三章 中国象棋游戏规则和走法设计3.1 中国象棋界面设计界面的设计采用了高级绘图类SurfaceView,SurfaceHolder.Callback,其主要优势在于可以再主线程之外开辟新的线程实现线程的刷新,可以防止主线程绘图任务繁重而带来的阻塞问题。中国象棋对战界面设计图3-1和图3-2。图 3-1 黑方棋手界面 图3-2 红方棋手界面界面的设计采用图片资源固定坐标绘制的方法,每隔100ms在刷新线程内重新刷新棋盘,实现棋盘的实时更新。棋盘上需要更新的数据有棋子的位置、指向当前走棋玩家一方的指针、玩家按下棋盘上某个位置后出现的提示框和红黑双方玩家的总思考时间,棋子位置依靠一个10*9的数组来维护,代表每一个坐标是什么棋子,总时间则依靠红黑双方各一个计时线程来实现时间的计算。对战棋盘的设计思路是:首先创建房间的玩家会自动选择为图3-1的黑方棋手界面,然后进入“等待中”状态,等待其他玩家响应进入图3-2的红方棋手界面,具体数据传递如图3-3所示:红方棋手黑方棋手创建房间,开启等待线程,等待红方发来开始命令响应玩家B,进入房间,开启线程发送开始命令线程接收到开始命令,开启走棋信息等待接收线程开始走棋,发送走棋信息,开启走棋信息等待接收线程接收到走棋信息,开始走棋,发送走棋信息,开启走棋信息等待接收线程接收到走棋信息,开始走棋,发送走棋信息,开启走棋信息等待接收线程图3-3 红黑双方数据传递图棋盘上设置了退出和认输按钮,退出按钮用来退出当前的游戏界面,若当前游戏尚未开始开始,则直接退出,若游戏已开始,则会出现提示信息如下图3-4的提示信息进行确认:图3-4 游戏退出提示消息进入中国象棋对弈界面后,为了防止玩家非主观的退出游戏,实现了对弈界面下返回键功能被禁止,即对弈界面中只能通过退出按钮进行退出游戏,有效地防止了意外操作带来的结果。认输按钮用来认输,即玩家若觉得己方以为胜算且不愿意在浪费时间在必输的棋局上,则可以直接认输,结束本局棋,认输只有在当前游戏开始后才是有效的,认输时也会出现如下图3-5的提示信息进行确认:图3-5 游戏认输提示消息很多人认为应该设计悔棋策略,但俗话说的好“棋场如人生,一着不慎满盘皆输”,生活尚不可后悔,何况棋乎,因此忽略中国象棋的悔棋功能,但增加点击棋子后的一个显示功能,可以看出玩家是否选择正确,避免点错棋子的意外发生,如下图3-6的提示边框:图3-6 游戏中棋子按下提示边框认输按钮和退出按钮之间的指针,其意义在于指针的指向代表当前轮到哪一方走棋,而红黑两个总时间则分别代表了红黑双方的走棋思考时间,当轮到红方走棋时启动红方计时线程,当轮到黑方走棋时红方计时线程暂停并启动黑方计时线程。3.2 中国象棋规则及走法设计3.2.1 中国象棋规则及走法中国象棋分为红黑双方,以楚河汉界为分界线,双方各执16字,分别为2车2马2相2仕2炮1将5卒,各自走法不同,具体如下:车:只可以走直线,且一步可以走任意距离,且起始点与目标点之间不得存在其他棋子。车吃子的条件是与目标棋子在一条直线上,且两子之间不得存在任何其他的棋子。马:只可以走“日”字方格,因此一匹马的最理想落子点有8个,但存在绊马腿的情况,即从马的位置到要走到的目标位置,顺着此方向,“日”字方格有两个方向,即两格长度和一个长度,马紧挨的两格长度方向的位置不能有子,否则即被绊住,不能走动。若目标位置为空,即可走过,若为对方的棋子,即可吃掉。炮:只可以走直线,且一步可以走任意距离,其起始点与目标点之间不得存在其他棋子。炮吃子的条件是与目标棋子在一条直线上,且两子之间必须有且只有一个棋子作为“跳板”,让炮进行跳跃式攻击。卒、兵:一步只可以走过一个方格的距离。当兵卒位于己方阵营时,只可以向前走动。当兵卒过河后到达对方阵营,可向前、向左、向右三个方向行走,即兵卒遵循的规律是绝不后退。象、相:只可以在己方阵营走动,且仅限于7个点,即己方“田”字格上的7个点,走的是斜线,走动时,起始点与目标点构成一条斜线,若该斜线的中点位置存在其他棋子,则被绊住无法走动。士、仕:只可以在己方阵营走动,且仅限于5个点,即己方棋盘上所绘的两条斜线的四个顶点和交叉点。一步只可以走动一个方格的斜线距离。可进可退。将、帅:只可以在己方阵营走动,且仅限于9个点,即己方底三行中三列形成的9个交叉点,也就是俗称的“九宫”,一步只可以走动一个方格的直线距离作为本方的主将,镇守大本营,双方的主将是不能够处于同一条直线而主将之间不存在其他的棋子进行隔挡。3.2.2 走法设计针对棋盘的设计,每一种棋子对应一个固定的值用以识别该棋子的类型,那么设计就根据红黑双方的棋子以及每个类型的棋子,设计规则类(GuiZeRed和GuiZeBlack),调用其中的canMove方法用以判断某一步走棋的是否可行。规则类的设计则采用了常规的办法,因为棋子的种类只有7种,且红黑双方处于棋盘的两端,某些棋子走动时的方向不一样,设计时就要进行分类讨论设计,供存在14中不同的判别方法来对所以的棋子走法进行判别是否可行,每一个判别方法都对应于其独有的判断算法。棋盘上各种棋子以及棋盘的初始布局的设计采用10*9的数组来进行标识,如图3-7所示:图3-7 棋盘初始布局图图3-7中各个数字的对应关系如下:0-无棋子;1-黑方的帅;2-黑方的车;3-黑方的马;4-黑方的炮;5-黑方的士;6-黑方的象;7-黑方的卒;8-红方的将;9-红方的车;10-红方的马;11-红方的炮;12-红方的士;13-红方的相;14-红方的兵。坐标(0,0)到坐标(8,4)之间的坐标代表楚河汉界的一方,坐标(0,5)到坐标(8,9)之间的坐标代表楚河汉界的另一方,即红黑双方各自的领土。3.3 中国象棋判输赢方法的设计3.3.1 红方胜若红方走棋,目标棋子是黑方的帅,即1号棋子,且该步走法是可行的,则红方吃点黑方的帅,红方胜,黑方败;若黑方棋手在游戏中主动退出中国象棋游戏对弈界面,则系统判定红方胜,黑方败;若黑方棋手在游戏中主动向红方棋手提出认输请求,则系统判定红方胜,黑方败。3.3.2 黑方胜若黑方走棋,目标棋子是红方的将,即8号棋子,且该步走法是可行的,则黑方吃点红方的将,黑方胜,红方败;若红方棋手在游戏中主动退出中国象棋游戏对弈界面,则系统判定黑方胜,红方败;若红方棋手在游戏中主动向黑方棋手提出认输请求,则系统判定黑方胜,红方败。3.3.3 和棋若红方在有限步内不能将死黑方,黑方在有限步内也不能将死红方,则双方进入和棋状态。对和棋状态的判断,需要根据当前的棋盘布局,设计一个判断算法,判断每一种新的棋盘状态是否进入和棋状态,若进入,则自动结束游戏和棋。判断和棋的另外一个方法就是,若双方玩家连续三步走的是同一个棋子,且多步走后对棋局没有任何影响,则属于无效走棋,双方进入和棋状态。第四章 中国象棋基于WIFI的通讯机制4.1 Socket通讯简介Socket称作“套接字”,作为UNIX的通信机制,用于描述IP地址和端口,是一个通信链的句柄。计算机上的每种服务都会打开一个Socket并绑定到一个端口上,不同的端口实现不同的功能。任意两台设备再进行Socket通信之前,首先先要占用自己的设备,申请一个Socket,即发出连接请求,对方设备若存在且处于未被占用状态,则连接接通,两者即可通信。Socket通信存在两种状态,主动发送数据和被动等待接收数据。抽象出来,socket实质上提供了进程通信的端点,进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。重要的是,socket 是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket 系统调用。客户随机申请一个socket,系统为之分配一个socket号;服务器拥有全局公认的 socket ,任何客户都可以向它发出连接请求和信息请求。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。 连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。4.2 基于TCP协议的Socket通信TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。 首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,它是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。 在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确