毕业论文-基于Android操作系统的中国象棋手机游戏【毕业论文】.doc
-
资源ID:61924778
资源大小:58.50KB
全文页数:39页
- 资源格式: DOC
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业论文-基于Android操作系统的中国象棋手机游戏【毕业论文】.doc
毕业论文-基于Android操作系统的中国象棋 游戏【毕业论文】 JIANGXINORMALUNIVERSITY学 士 学 位 论 文THESIS OF BACHELOR2006 2021年基于Android操作系统的中国象棋 游戏Chinese Chess Application based on Android Mobile OS指 导 老 师 曹 中 _ 华 姓 名 刘 盛 _旗 学 号 0667110121 学 院 软 件 学 院 专 业 软 件 工 程 声明本人郑重声明所呈交的毕业设计论文是本人在指导教师指导下进行的研究工作及取得的研究成果其中除加以标注和致谢的地方以及法律规定允许的之外不包含其他人已经发表或撰写完成并以某种方式公开过的研究成果也不包含为获得其他教育机构的学位或证书而作的材料其他同志对本研究所做的任何奉献均已在文中作了明确的说明并表示谢意本毕业设计论文成果是本人在江西师范大学读书期间在指导教师指导下取得的成果归江西师范大学所有特此声明声明人毕业设计论文作者学号声明人毕业设计论文作者签名签名日期年月日摘 要cnChess是运行在Android平台上的一款支持双人联网对局即时聊天对弈记录的休闲棋牌类 游戏系统采用面向对象的编程思想进行构思与分析设计使用UML构建软件模型使用MVC架构模式实现系统的整体架构及各模块之间的接口设计在系统的实践过程中还采用了局部GoF的设计模式进行编码与开发本文详细系统地阐述了在Android平台上应用MVC分层架构模式及面向对象的软件开发思想对cnChess游戏系统的分析设计及实现过程在工程的实践过程中主要用到了以下技术 布局主要使用了XML设计程序及其子模块的生命周期管理用到了Activity流程控制数据储存方面使用的是轻量级数据库SQLite网络通讯局部使用的是XMPP即时通讯协议进行数据的传输对弈的画面更新使用的是 的2D图形编程本论文的前半局部将简要介绍系统相关的行业信息及根底的技术知识后半局部将对本人在系统各模块中所使用的关键技术的实现进行了全面的介绍关键词联网对弈中国象棋 游戏 Android平台ABSTRACTCnChess is a Chinese Chess game that running on the Android platformIt support many of the features such as playing games through the network real-time chat and play chess records of casual mobile games The CnChess game is object-oriented programming design and analysis of the idea of thinking build software models using UML use of MVC architecture patterns to achieve the overall system and the interface between the module designs in practice the system also uses some of the GoFs design patterns to coding and development This paper systematically expounded in the Android platform the application of MVC pattern and hierarchical structure of object-oriented software development thoughts cnChess game system analysis design and implementation process Practice in the course of the project mainly used in the following technologies cell phones primarily use XML layout design process and life cycle management sub-module uses the Activity process control data storage areas using a lightweight database SQLite netwrok communication Some use the XMPP instant messaging protocol for data transmission public debate of the frame using a mobile phone 2D graphics programming The first part of this paper will briefly introduce the system based on relevant industry information and technical knowledge the latter part of each module in the system I will be in the key technology used in the realization of a comprehensive introductionKeywords Network of games Chinese chess Mobile Games Android platform目 录第1章 绪论111问题的提出112相关研究综述1com Android 操作系统的开展历程1com 国内外关于Android 应用程序的研究及开发现状213研究目标与内容2com 研究目标2com 研究主要内容2第2章 Android程序设计相关技术概述421 XUL界面布局422 Android的Activity组件423 SQLite数据库524 XMPP协议525 Android 2D图形编程526 MVC模式简介5第3章 系统的分析与实现731系统分析7com系统功能分析7com系统流程分析8com系统数据流分析932 系统数据库设计9com 系统E-R图9com 数据库表设计1033 面向对象的系统设计10com 系统文件组织结构10com 用例的设计11com 类的设计12com 系统交互模式的设计12第4章 模块的实现1541 MVC分层结构1642 总体控制模块1743 数据存储模块1844 数据传输模块2045 对局模块2246 XML界面布局模块2447 系统中关键技术的应用及实现24com SQLite3的应用24com XML界面设计25com cnChess的2D图像编程25com 对弈过程中双方棋盘上棋子的同步27com XMPP数据传输27com 走棋规那么的判断28第5章 结束语3051 后续研究展望30参考文献31致 谢32第1章 绪论11问题的提出随着3G移动网络应用的推广 游戏的规模复杂程度日益增强其技术手段设计思想系统体系结构都发生了深刻的变化 操作系统正朝着高处理能力多功能智能化的方向开展近年来网络文化市场开展很快随着互联网的迅速普及宽带的接入社区和家庭我国网络游戏市场开展迅速并进入了一个高速增长期并已经创造了较大的产值带动了相关产业的开展如今网络上的提供免费中国象棋游戏大多数是单机版的界面单一功能单一本系统将实现在网络上对战的中国象棋功能还对在下棋界面美化以及下棋中可能出现的意外进行了处理这样中国象棋休闲游戏将不在是一个功能单一界面枯燥的游戏而是一个较完善的休闲游戏在国内外Android 应用开发如火如荼日益盛行的大背景下本人决定开发一款界面友好操作简单支持双人联网对局数据记录智能规那么判断的 休闲游戏12相关研究综述近年来国内外的专家学者以及一线的开发人员从理论方法技术等不同的角度对Android 操作系统进行了一定的研究本小节将从Android 操作系统的开展历程研究现状程序开发设计简介四个方面分析总结国内外的相关研究结果com Android 操作系统的开展历程Android是Google于2007年11月5日宣布的基于Linux平台开源 操作系统名称该平台由操作系统中间件用户界面和应用软件组成号称是首个为移动终端打造的真正开放和完整的移动软件表11 Android 操作系统的开展阶段开展阶段 阶段特征comAndroid平台发布comT-Mobile2021年1季度G1销售100万台20213MWC华为发布Android Moto三星LG方案2021年下半年推出Android 2021获得OrangeVodafoneO2Telefonica支持2021进军上网本com 国内外关于Android 应用程序的研究及开发现状Android是基于Linux内核的软件平台和操作系统早期由Google开发后由开放 联盟Open Handset Alliance开发它采用了软件堆层software stack又名以软件叠层的架构主要分为三局部低层以Linux内核工作为根底只提供根本功能其他的应用软件那么由各公司自行开发以Java作为编写程序的一局部另外为了推广此技术Google和其它几十个 公司建立了开放 联盟Android在未公开之前常被传闻为Google 或GPhone大多传闻认为Google开发的是自己的 产品而不是一套软件平台2021年1月Google开始发表自家品牌 的Nexus One目前最好的是Android2113研究目标与内容com 研究目标本工程主要研究的目标分为程序设计思想实践改良目标Android平台 开发技术的研究目标以及对XMPP网络传输协议的使用与研究目标1运用面向对象的编程思想及RUP统一过程对cnChess中国象棋 游戏的系统结构过程功能等要素进行可视化的描述为Android程序设计的可视化提供方法技术上的支持为系统的理论模型和软件建模提供参照2本系统中使用了多种基于Android平台的软件开发技术根据要实现的系统功能系统需要使用到的技术及技术研究的目标主要有 游戏用户界面的人性化个性化界面布局给用户以良好的游戏体验移动设备上的图形编程提供流畅靓丽的游戏过程界面使用文件SQLite等数据存储方式提供游戏配置保存游戏过程保存游戏过程回放游戏结果记录等功能方便用户查看3使用XMPP即时通讯协议传输数据提供即时聊天的以及在线探测的功能实现游戏的实时性com 研究主要内容工程研究的内容主要有以下四大块第一局部是 游戏的界面设计和背景音效的设计和PC上的游戏开发有些许不同 游戏更加的注重用户体验一个人性化的时尚靓丽的游戏界面和优美个性化的音效设计是一个成功的 游戏要到达的根本要求第二局部是 之间的通信模块设计3G时代 通信受流量的限制很大所以必须尽可能的使用简洁的通信协议减少数据的流量减少用户的通讯资费再者双人对局这样的在线游戏必须表达其即时性在一方因为 打入或其他原因导致游戏挂起或掉线时另一方能及时得知道对方的状态以便做出处理另外为了增加游戏的互动性工程提供了即时聊天的功能第三局部是对局智能程序的设计在没有朋友在线的情况下可以和设计好的AIArtificial Intelligence算法进行游戏人工智能程序设计是一项对算法要求很高的程序设计特别是在 这种硬件资源紧缺的环境中更是需要一个高效的算法来提供强大的AI对局支持第四局部是逻辑控制模块的设计当有紧急事件如 打入电池没电等发生时需全局模块对当前的游戏状态进行保存或退出等处理并发送相关信息给对局的伙伴用户通过触摸屏进行走棋棋子的走动规那么由软件进行智能规那么判断对局结束软件将对对局的过程及结果使用与国际接轨的棋谱记录格式PGNFEN进行记录在对局结束后用户可用软件读入PGN格式的对局过程文件进行战局的回放软件采用面向对象的编程思想进行构思设计使用UML设计软件的模型采用了局部GoF的设计模式进行编码与开发第2章 Android程序设计相关技术概述Android作为一个移动设备的平台其软件层次结构包括了一个操作系统OS中间件MiddleWare和应用程序Application根据Android的软件框图其软件层次结构自下而上分为以下几个层次图21 Android系统架构21 XUL界面布局XUL 是一种基于 XML 的语言因此需要对 XML特别是 XML 名称空间很熟悉XUL是英文XML User Interface Language的首字母缩写顾名思义它是一种应用XML来描述使用者界面的标示语言 22 Android的Activity组件Activity一般代表 屏幕的一屏相当于浏览器的一个页面在Activity中添加view实现应用界面和用户交互一个应用程序一般由多个Activity构成这些Activity之间可互相跳转可进行页面间的数据传递每个Activity都有自己的生命周期23 SQLite数据库在Android平台上集成了一个嵌入式关系型数据库SQLiteSQLite是支持结构化查询的轻量级数据库能很好得适应于移动设备的应用Android提供了一个名为SQLiteDatabase的类该类封装了一些操作数据库的API使用该类可以完成对数据进行添加 Create 查询 Retrieve 更新 Update 和删除 Delete 操作 这些操作简称为CRUD 24 XMPP协议什么是XMPP XMPP可扩展消息处理现场协议的前身是Jabber一个开源形式组织产生的网络即时通信协议具有即时信息传输以及在线现场探测的功能XMPP的根本网络结构XMPP中定义了三个角色客户端效劳器网关通信能够在这三者的任意两个之间双向发生效劳器同时承当了客户端信息记录连接管理和信息的路由功能网关承当着与异构即时通信系统的互联互通异构系统可以包括SMS短信MSNICQ等根本的网络形式是单客户端通过TCPIP连接到单效劳器然后在之上传输XML XMPP通过TCP传输的数据XMPP传输的即时通讯指令的逻辑与以往相仿只是协议的形式变成了XML格式的纯文本XMPP的核心局部就是一个在网络上分片断发送XML的流协议这个流协议是XMPP的即时通讯指令的传递根底 25 Android 2D图形编程 1Simple Graphics in View就是直接使用Android已经实现的一些画图操作比方说imagesshapescolorspre-defined animation等等这种方式只能画静态或者极为简单的2D图画对于实时性很强的动画高品质的游戏都是没法实现的2Canvas首先我们要明白这个Canvas是一个2D的概念是在Skia中定义的也就是说在这个方式下还是说的画2D图形26 MVC模式简介整个系统采用了MVC模式进行设计MVC模式是一种流行的软件设计模式它把系统分为3个模块模型Model视图View和控制器Controller各个模块的功能说明参见表21表21 MVC的三个模块MVC模块描述模型代表应用程序状态和业务逻辑视图提供可交互界面向客户显示模型数据控制器响应客户的请求根据客户的请求来操纵模型并把模型的响应结果经由视图展现给客户各个模块之间的相互作用如图22所示采用MVC模式有很多好处一是能将显示逻辑和数据分开某一方面的改变不会影响另一方面其次是可以在不更改视图显示的情况下更改控制器以到达更改视图与用户交互的响应模式的目的图22 MVC模型图第3章 系统的分析与实现游戏对用户界面的要求较高需到达人性化美观大方便于操作个性化游戏界面时尚靓丽别具一格最好能做到自定义皮肤之类的本游戏是使用即时通讯协议进行通信的所以实时的游戏效果即时聊天以及在线探测是必须做到用户体验良好的数据存储方面需存储游戏的配置信息对局的胜负信息对局的过程信息31系统分析本系统的定位是cnChess中国象棋 游戏是运行在Android开源 操作系统平台上的支持双人联网对战的一款 游戏由于对国际国内3G移动应用的前景看好另外也对游戏开发有很大的兴趣决定开发一款基于Android 操作系统的中国象棋 游戏结合当前移动开发的形式初步设想之后定下基于Android 操作系统的中国象棋游戏应用应该是这样一款休闲游戏以3G方式连入互联网支持双人之间的游戏互动支持即使聊天以及在线探测支持游戏过程记录及回放支持人机对战游戏界面布局人性化个性化支持紧急事件处理如 打入电池没电等可能的话进行Wi-Fi编程实现局域网对局com系统功能分析本系统的根本功能主要有三大块即时聊天方便玩家的交流学习象棋对弈游戏的联网互动以及即时性是本程序与一般的象棋游戏的不同战绩统计用于统计玩家的对弈胜负情况详细的系统功能分析图如图3-1所示图3-1 cnChess系统功能结构图本系统的执行流程较简单进入系统后有五个选项联网对局XMPP设置查看胜负情况查看开发者信息及用户帮助信息退出游戏在联网对局前XMPP连接设置必须是已经配置好的否那么无法连接jabber效劳器不能进入对局界面系统主要的输入输出及模块间的调用情况用IPO图表示如图3-2图3-2 cnChess IPO图输入一处理一输出图com系统流程分析系统流程分析是软件工程图表例如流程图判定表等辅以必要的说明来表示本程序的逻辑流程本系统采用XMPP协议进行网络的连接数据的交换站在用户的角度来看用户之间的信息交流是端对端的但是站在程序设计开发者的角度来看数据其实是要经过jabber效劳器的从设计开发者的角度描述系统的数据交互模式如图3-3图3-3 系统交互模式图com系统数据流分析cnChess 游戏系统需要储存的主要数据有XMPP网络连接的配置信息以及走棋的胜负信息系统的数据流图如图3-4所示图3-4系统数据流图32 系统数据库设计com 系统E-R图系统使用SQLite轻量级数据库进行数据的储存和管理用户可根据自己的需要进行XMPP网络连接的配置以及胜负情况的查看和清空系统的E-R图如图3-5所示图3-5 系统E-R图com 数据库表设计本程序采用轻量级数据库SQLite存储管理数据数据库名称为Datasdb Datasdb数据库含有两张表两张表的名称以及字段属性等定义如下scoreTableidwinningfallingpeace对局得分表主要用来储存对局的胜负信息settingsTableidhostportservicepartnereduserIDuserPWD网络连接配置表主要用来储存XMPP网络连接配置33 面向对象的系统设计本系统使用面向对象的开发思想UML建模方法MVC三层架构GoF的局部设计模式编码设计开发便于后续的软件扩展下面将从系统文件组织结构系统用例图系统类图以及系统三个角度对系统进行设计方面的说明com 系统文件组织结构一个Android程序由Android LibrarysrcReferenced LibrariesresAndroidManifestxml组成其中Android Library为Android系统类库src内为程序员的代码包Reserenced Libraries为第三方开发包res为程序所要用到的资源如图片音视频文档界面布局xml文档等存放的文件夹AndroidManifestxml为程序的主配置声明及版本说明文件本系统的简要文件组织结构如图3-6所示图3-6 工程文件组织结构com 用例的设计系统的用例主要有三大类游戏逻辑及流程控制类走棋及聊天类网络连接类以下为系统的详细用例图各用例作用范围及相互间的关系如图3-7所示图3-7 系统用例图com 类的设计根据系统用例图站在类的功能角度进行分析设计cnChess程序的类主要分以下五种界面显示类逻辑及流程控制类数据管理类网络连接类对弈控制类各种类的Java类主要功能说明如下界面显示类主要用来实现游戏的UI界面布局以及屏幕的刷新等功能如SettingsDialogViewScoreChatDialog等类数据管理类为保持数据的平安性完整性及一致性所有的类必须通过数据管理类进行数据的存取如SettingsManagerDataManager等类逻辑及流程控制类主要负责协调各模块之间的调用及流程的跳转传递模块之间的信息等功能如cnChessstartGame等类网络连接类用于连接网络对需要发送的数据进行加密解密发送数据状态监听数据接收等功能如ConnectDialogXMPPClient等类对弈控制类主要为对弈过程中各面向对象的抽象模型也进行必要的数据处理如BoardViewUmpire等类com 系统交互模式的设计序列图主要用于按照交互发生的一系列顺序显示对象之间的这些交互序列图的主要用途之一是把用例表达的需求转化为进一步更加正式层次的精细表达10用例常常被细化为一个或者更多的序列图序列图除了在设计新系统方面的用途外它们还能用来记录一个存在系统称它为遗产的对象现在如何交互当把这个系统移交给另一个人或组织时这个文档很有用用例viewScore的顺序图简要的说明了用户是如何与SQLite数据库进行交互看到自己的战绩这一事件的用户按下查看战绩的按钮view score系统得知这一指令发出数据请求给SQLite管理类数据库管理类查询到数据后将数据返回给系统查看类系统查看类将战绩数据显示在 屏幕上用户发出去除战绩请求逻辑控制类将这一请求信息发送给SQLite管理类管理类去除数据后将结构返回给逻辑控制类逻辑控制类发送屏幕更新指令用户看到屏幕显示数据已更新图3-8 viewScore用例的顺序图网络连接设置用例Setting的顺序图用户发出查看连接配置请求SettingsDialog显示类请求数据库管理类去数据库读取数据数据库管理类读取到数据后将数据返回给显示类显示类显示用户请求的配置信息用户输入新的XMPP网络连接配置信息SettingsDialog显示类请求添加或者更新网络配置信息SQLite管理类获知更新请求后更新数据库图3-9 Setting用例的顺序图游戏对局用例startGame涉及到相关的类较多如图3-10所示用户按下开始游戏键系统提示是否要联网游戏用户确认是后系统读取XMPP配置信息建立 到效劳器端的网络连接假设用户确认否那么系统退回到游戏主界面此时系统未连上互联网用户选择聊天菜单startGame进行相应的逻辑处理启动聊天对话框用户输入聊天信息按下发送按钮消息发送到对方的效劳器帐号与此同时在用户自己的聊天记录单里面显示用户进行走动棋子或者悔棋等请求信息startGame接收到按键事件或者触摸屏事件后将相应的信息转交XMPPClient进行信息的发送XMPPClient还负责客户端监听当有对方有走棋等信息发送过来时XMPPClient将分辨是否为cnChess程序格式的信息并进行解码解包之后将信息转交给startGamestartGame对转交过来的信息进行处理图3-10 startGame用例的顺序图第4章 模块的实现需求分析阶段答复了目标软件系统要做什么的问题而软件设计阶段那么需要答复目标软件系统要怎么做以实现用户需求的问题12在cnChess 游戏系统的软件设计建模阶段主要是以需求分析阶段的成果需求分析模型作为输入进行系统的体系结构设计类的详细设计和用例实现设计总体来说cnChess系统的软件设计建模阶段是对分析建模结果的进一步精化和调整图4-1 cnChess的工程开发流程工程要实现的模块主要有四局部第一局部是 游戏的界面设计和背景音效的设计和PC上的游戏开发有些许不同 游戏更加的注重用户体验一个人性化的时尚靓丽的游戏界面和优美个性化的音效设计是一个成功的 游戏要到达的根本要求第二局部是 之间的通信模块设计3G时代 通信受流量的限制很大所以必须尽可能的使用简洁的通信协议减少数据的流量减少用户的通讯资费再者双人对局这样的在线游戏必须表达其即时性在一方因为 打入或其他原因导致游戏挂起或掉线时另一方能及时得知道对方的状态以便做出处理另外为了增加游戏的互动性工程提供了即时聊天的功能第三局部是对局智能程序的设计在没有朋友在线的情况下可以和设计好的AIArtificial Intelligence算法进行游戏人工智能程序设计是一项对算法要求很高的程序设计特别是在 这种硬件资源紧缺的环境中更是需要一个高效的算法来提供强大的AI对局支持第四局部是逻辑控制模块的设计当有紧急事件如 打入电池没电等发生时需全局模块对当前的游戏状态进行保存或退出等处理并发送相关信息给对局的伙伴用户通过触摸屏进行走棋棋子的走动规那么由软件进行智能规那么判断对局结束软件将对对局的过程及结果使用与国际接轨的棋谱记录格式PGNFEN进行记录在对局结束后用户可用软件读入PGN格式的对局过程文件进行战局的回放软件采用面向对象的编程思想进行构思设计使用UML设计软件的模型采用了局部GoF的设计模式进行编码与开发41 MVC分层结构在cnChess系统的设计建模阶段是答复如何实现系统功能的问题主要完成软件体系结构设计和详细设计两个方面的工作软件体系结构设计是高级设计主要包括以下步骤1体系结构的层次划分2体系结构的子系统划分3建立三层体系结构与类之间的映射关系详细设计中首先要详细描述每一个类包括类的属性操作类之间的关系同时对系统用例进行设计详细设计包括如下内容1设计实体类的属性和操作2设计边界类的功能组成和操作3设计类之间的关系4构造设计类图模型5借助交互图实现用例设计6数据模型的设计7实现模型的设计8设计建模的评审本系统使用MVC设计模式13进行体系的根底架构如图4-2所示图4-2 cnChess的MVC三层架构Android应用程序的一般架构为Views Content Providers Resource Manager Notification Manager Activity Manager 你可以选择其中的假设干项作为你应用的架构元素系统的工程文件组织结构如图4-3所示其中源代码包中的View类和Dialog类以及res资源文件夹中的所有XML文件充当视图的角色负责 界面的显示和与用户的交互cnChessstartGame两个类充当的角色重要控制程序界面的切换和信息的分发BoardViewUmpireXMPPClient分别是棋盘类裁判类信息收发类充当模型的角色分别负责棋盘模型的显示与更新裁判对象模型的建立即时信息通信模型的建立 DataManagerSettingsManager两个类负责与SQLite数据库的沟通分别负责战绩胜负次数XMPP联接设置的数据存取图4-3 cnChess的文件组织结构42 总体控制模块软件体系结构是软件在设计构成上根本的可供设计选择的形态和总体结构本质上它是对软件需求的一种抽象解决方案在引入了体系结构的软件开发之后cnChess中国象棋 游戏系统的构造过程变为问题定义软件需求软件体系结构设计软件详细设计软件实现本系统的总体控制模块主要有cnChess以及startGamecnChess用于控制各子模块Activity的启动休眠以及消亡例如当用户按下开始游戏按钮时startGame内置的监听器startGamesetOnClickListener将获取onClick事件并调用showStartGame 函数启动对弈相关的模块startGame属于对局子模块用于协调对局过程中对各中系统信息进行逻辑判断消息分发控制调用协调各二级子模块的运行依据上一阶段中UML设计出来的模型及相关的文档对系统的各类进行细化后得出系统各模块的类以及各类之间的相互关联关系下面将详细介绍各类模块作用以及类之间的相互关联性关于总体流程控制类cnChess如图4-4所示各类相关作用简介如下负责启动游戏控制协调各模块的运行startGame负责启动对局模块以及对局时候各对局子模块的相互协调SettingsDialog负责游戏网络配置的UI显示以及数据获取数据储存等ViewScore负责游戏胜负战绩的UI显示以及管理功能companyInfo负责游戏开发商信息的显示以及用户帮助文档的UI显示ExitGameDialog负责结束游戏相关进程线程保存相关游戏数据平安退出游戏图4-4 总体控制类及相关类的联系图图 4-5 对弈流程控制模块与网络通信模块联系图关于对弈流程控制类startGame与通信模块的组织联系图如图4-5所示对弈流程控制主要作用为协调各对弈子模块的通信与调用与对弈流程控制有关的模块有网络连接局部中建立连接以及数据发送接收的类负责数据存取的Manager类用于聊天的chatDialog窗体类走棋棋盘同步更新模块的类请求回复窗体类等43 数据存储模块数据存储模块有四个类分为储存控制类和界面信息显示两种说明如下类SettingsDialogviewScore用来做用户UI界面输入设置等信息的获取和查看去除对局胜负情况类DataManager与SettingsManager是数据管理类下面就DataManager 函数简要介绍一个数据管理类是怎样实现的变量设置管理类中有属性为private的变量存取都必须通过函数内置的getset函数进行判断表是否存在管理数据必须先是有你需要管理的表isScoreTable 函数通过系统API中的query 函数对系统表sysobject进行查询假设系统表中没有所要查找的对象那么需建立scoreTable表表的创立与删除记录的添删修数据的存取都是通过系统API接口中的execSQL 函数来完成的例如当需要删除scoreTable这张表语句为dbexecSQL sql db为所要操作的数据库的句柄sql为所要执行的语句Manager的这两个类有些类似JavaBean是为了保证数据的平安完整一致其他类必须通过数据库Manager类才能与SQLite数据库进行沟通完成对数据的操作实践编程难点在类UmpireManager由分析设计的结果生成各模块的详细编码单元以及各类的模型Umpire是裁判员类主要用于判断棋子走动是否规那么对弈的胜负结果系统源码包中带Manager后缀的都是属于数据管理相关类Manager类主要调用系统API如androiddatabase 或者andcomte 进行数据的存取如图4-6所示各类作用相关作用如下图4-6 查看战绩连接设置以及走棋模块的类图本程序采用轻量级数据库SQLite3存储管理数据数据库名称为Datasdb Datasdb数据库含有两张表scoreTable表用来储存对局的胜负信息settingsTable用来储存XMPP网络连接配置表4-1 scoreTable存储对局的胜负信息字段含义数据类型是否为空初始值id记录的编号Int否0winning获胜次数Int否0falling失败次数Int否0peace平局次数Int否0表4-2 settingsTable存储XMPP的连接设置字段含义数据类型是否为空初始值idPK记录的编号Int否0host效劳器地址String否comport效劳器端口Int否5222serviceJabber效劳提供商String否GmailcompartnerID对手gmail帐号String否examplegmailcomuserID用户gmail帐号String否example2gmailcomuserPWD用户密码String是12345644 数据传输模块数据传输模块有两个类很多算法及技术难点都需要用到第三方开发包smackjar中的XMPP组件及其API完成9模块说明如下ConnectDialog用来连接或者断开XMPP网络连接当连接上效劳器后启动对局模块进行游戏XMPPClite接受startGame模块转交过来的数据在信息分类格式化加密后发送给网络中的jabber效劳器同时监听效劳器发送过来的cnChess格式化数据解密解包分类后转交给startGame模块另外也监听对手的在线状态等信息以便在发生突发情况时进行相应的处理从而真正的到达即时游戏的效果系统在进行联网对局前必须对网络连接进行有效的配置游戏的网络连接配置UI界面以及各配置项的说明如图4-7及表4-3所示配置信息的数据存储流程图如图4-7所示图4-7 SettingsDialog对话框输入项游戏连接配置对话框各输入项的详细定义如表4-3所列表4-3 XMPP设置界面各工程详细定义标识名称数据类型数据值有效范围输入媒体平安保密条件UserID用户Gmail帐号StringgmailcomSettingsDialogSQLite限制访问Password用户密码StringSettingsDialogSQLite限制访问MD5加密PartnerID对方Gmail帐号StringgmailcomSettingsDialogSQLite限制访问Host提供IM效劳的主机StringcomSettingsDialogSQLite限制访问Port提供IM效劳主机的端口号Int5222SettingsDialogSQLite限制访问Service所用的效劳类型StringgmailcomSettingsDialogSQLite限制访问系统使用SQLite数据库假设无游戏配置信息或者配置信息无效系统将提示进行正确的网络连接配置并对正确的配置进行存储配置信息的存储数据流程图如图4-8所示图4-8 XMPP网络连接设置数据流程图为保证用户 之间数据传输中各类数据的区分系统在数据发送前需对各类数据信息进行一定的格式化待数据信息到达对方的 后系统再进行相应的解包另外为保证数据在网络间传输的平安性在 发送信息至互联网这一段使用了smackjar类库中的加密函数图4-9 Chat聊天模块数据流程图