基于Android操作系统的中国象棋手机游戏.docx
- 文档编号:29251900
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:38
- 大小:494.01KB
基于Android操作系统的中国象棋手机游戏.docx
《基于Android操作系统的中国象棋手机游戏.docx》由会员分享,可在线阅读,更多相关《基于Android操作系统的中国象棋手机游戏.docx(38页珍藏版)》请在冰豆网上搜索。
基于Android操作系统的中国象棋手机游戏
基于Android操作系统的中国象棋手机游戏ChineseChessApplicationbasedonAndroidMobileOS
指导老师:
xxxxxxxxxxx
姓名:
xxxxxxxxxx
学号:
xxxxxxxxxx
学院:
软件学院
专业:
软件工程
摘要
cnChess是运行在Android平台上的一款支持双人联网对局、即时聊天、对弈记录的休闲棋牌类手机游戏。
系统采用面向对象的编程思想进行构思与分析设计;使用UML构建软件模型;使用MVC架构模式实现系统的整体架构及各模块之间的接口设计;在系统的实践过程中还采用了部分GoF的设计模式进行编码与开发。
本文详细系统地阐述了在Android平台上,应用MVC分层架构模式及面向对象的软件开发思想对cnChess游戏系统的分析、设计及实现过程。
在项目的实践过程中,主要用到了以下技术:
手机布局主要使用了XML设计,程序及其子模块的生命周期管理用到了Activity流程控制,数据储存方面使用的是轻量级数据库SQLite、网络通讯部分使用的是XMPP即时通讯协议进行数据的传输、对弈的画面更新使用的是手机的2D图形编程。
本论文的前半部分将简要介绍系统相关的行业信息及基础的技术知识,后半部分将对本人在系统各模块中所使用的关键技术的实现进行了全面的介绍。
关键词:
联网对弈;中国象棋;手机游戏;Android平台
ABSTRACT
CnChessisaChineseChessgamethatrunningontheAndroidplatform.Itsupportmanyofthefeaturessuchasplayinggamesthroughthenetwork,real-timechat,andplaychessrecordsofcasualmobilegames.
TheCnChessgameisobject-orientedprogrammingdesignandanalysisoftheideaofthinking;buildsoftwaremodelsusingUML;useofMVCarchitecturepatternstoachievetheoverallsystemandtheinterfacebetweenthemoduledesigns;inpracticethesystemalsousessomeoftheGoF'sdesignpatternstocodinganddevelopment.
ThispapersystematicallyexpoundedintheAndroidplatform,theapplicationofMVCpatternandhierarchicalstructureofobject-orientedsoftwaredevelopmentthoughtscnChessgamesystemanalysis,designandimplementationprocess.Practiceinthecourseoftheproject,mainlyusedinthefollowingtechnologies:
cellphonesprimarilyuseXMLlayoutdesign,processandlifecyclemanagementsub-moduleusestheActivityprocesscontrol,datastorageareasusingalightweightdatabaseSQLite,netwrokcommunicationSomeusetheXMPPinstantmessagingprotocolfordatatransmission,publicdebateoftheframeusingamobilephone2Dgraphicsprogramming.Thefirstpartofthispaperwillbrieflyintroducethesystembasedonrelevantindustryinformationandtechnicalknowledge,thelatterpartofeachmoduleinthesystem;Iwillbeinthekeytechnologyusedintherealizationofacomprehensiveintroduction.
Keywords:
Networkofgames;Chinesechess;MobileGames;Androidplatform
第1章绪论
1.1问题的提出
随着3G移动网络应用的推广,手机游戏的规模、复杂程度日益增强;其技术手段、设计思想、系统体系结构都发生了深刻的变化。
手机操作系统正朝着高处理能力、多功能、智能化的方向发展。
近年来,网络文化市场发展很快,随着互联网的迅速普及、宽带的接入社区和家庭,我国网络游戏市场发展迅速并进入了一个高速增长期,并已经创造了较大的产值,带动了相关产业的发展。
如今网络上的提供免费中国象棋游戏,大多数是单机版的,界面单一,功能单一。
本系统将实现在网络上对战的中国象棋功能;还对在下棋界面美化,以及下棋中可能出现的意外进行了处理。
这样中国象棋休闲游戏将不在是一个功能单一界面枯燥的游戏,而是一个较完善的休闲游戏。
在国内外Android手机应用开发如火如荼、日益盛行的大背景下,本人决定开发一款界面友好、操作简单,支持双人联网对局、数据记录、智能规则判断的手机休闲游戏。
1.2相关研究综述
近年来,国内外的专家学者以及一线的开发人员从理论、方法、技术等不同的角度对Android手机操作系统进行了一定的研究。
本小节将从Android手机操作系统的发展历程、研究现状、程序开发设计简介四个方面分析总结国内外的相关研究结果。
1.2.1Android手机操作系统的发展历程
Android是Google于2007年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
表1.1Android手机操作系统的发展阶段
发展阶段
阶段特征
2007.11.5
Android平台发布
2008.9.22
T-Mobile
2009年1季度
G1销售100万台
2009.3
MWC华为发布Android手机,Moto,三星,LG计划2009年下半年推出Android手机
2009
获得Orange,Vodafone,O2,Telefonica支持
2009
进军上网本
1.2.2国内外关于Android手机应用程序的研究及开发现状
Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟OpenHandsetAlliance)开发。
它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。
低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
Android在未公开之前常被传闻为Google电话或GPhone。
大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。
2010年1月,Google开始发表自家品牌手机电话的NexusOne,目前最好的是Android2.1。
1.3研究目标与内容
1.3.1研究目标
本项目主要研究的目标分为:
程序设计思想实践改进目标、Android平台手机开发技术的研究目标以及对XMPP网络传输协议的使用与研究目标。
(1)运用面向对象的编程思想及RUP统一过程,对cnChess中国象棋手机游戏的系统结构、过程、功能等要素进行可视化的描述,为Android程序设计的可视化提供方法、技术上的支持,为系统的理论模型和软件建模提供参照。
(2)本系统中使用了多种基于Android平台的软件开发技术,根据要实现的系统功能,系统需要使用到的技术及技术研究的目标主要有:
手机游戏用户界面的人性化、个性化界面布局,给用户以良好的游戏体验;
移动设备上的图形编程,提供流畅靓丽的游戏过程界面;
使用文件、SQLite等数据存储方式,提供游戏配置保存,游戏过程保存、游戏过程回放、游戏结果记录等功能,方便用户查看;
(3)使用XMPP即时通讯协议传输数据,提供即时聊天的以及在线探测的功能,实现游戏的实时性。
1.3.2研究主要内容
项目研究的内容主要有以下四大块:
第一部分是手机游戏的界面设计和背景音效的设计。
和PC上的游戏开发有些许不同,手机游戏更加的注重用户体验,一个人性化的、时尚靓丽的游戏界面和优美个性化的音效设计是一个成功的手机游戏要达到的基本要求。
第二部分是手机之间的通信模块设计。
3G时代,手机通信受流量的限制很大,所以必须尽可能的使用简洁的通信协议,减少数据的流量,减少用户的通讯资费;再者,双人对局这样的在线游戏,必须体现其即时性,在一方因为电话打入或其他原因导致游戏挂起或掉线时,另一方能及时得知道对方的状态,以便做出处理。
另外,为了增加游戏的互动性,项目提供了即时聊天的功能。
第三部分是对局智能程序的设计。
在没有朋友在线的情况下,可以和设计好的AI(ArtificialIntelligence)算法进行游戏。
人工智能程序设计是一项对算法要求很高的程序设计,特别是在手机这种硬件资源紧缺的环境中,更是需要一个高效的算法来提供强大的AI对局支持。
第四部分是逻辑控制模块的设计。
当有紧急事件(如电话打入,电池没电等)发生时,需全局模块对当前的游戏状态进行保存或退出等处理,并发送相关信息给对局的伙伴;用户通过触摸屏进行走棋,棋子的走动规则由软件进行智能规则判断;对局结束,软件将对对局的过程及结果使用与国际接轨的棋谱记录格式(PGN,FEN)进行记录,在对局结束后,用户可用软件读入PGN格式的对局过程文件,进行战局的回放。
软件采用面向对象的编程思想进行构思设计,使用UML设计软件的模型,采用了部分GoF的设计模式进行编码与开发。
第2章Android程序设计相关技术概述
Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。
根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:
图2.1Android系统架构
2.1XUL界面布局
XUL是一种基于XML的语言,因此需要对XML(特别是XML名称空间)很熟悉。
XUL是英文“XMLUserInterfaceLanguage”的首字母缩写。
顾名思义,它是一种应用XML来描述使用者界面的标示语言。
2.2Android的Activity组件
Activity,一般代表手机屏幕的一屏,相当于浏览器的一个页面。
在Activity中添加view,实现应用界面和用户交互。
一个应用程序一般由多个Activity构成,这些Activity之间可互相跳转,可进行页面间的数据传递。
每个Activity都有自己的生命周期。
2.3SQLite数据库
在Android平台上,集成了一个嵌入式关系型数据库—SQLite。
SQLite是支持结构化查询的轻量级数据库,能很好得适应于移动设备的应用。
Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。
2.4XMPP协议
1.什么是XMPP
XMPP(可扩展消息处理现场协议)的前身是Jabber,一个开源形式组织产生的网络即时通信协议。
具有即时信息传输以及在线现场探测的功能。
2.XMPP的基本网络结构
XMPP中定义了三个角色,客户端,服务器,网关。
通信能够在这三者的任意两个之间双向发生。
服务器同时承担了客户端信息记录,连接管理和信息的路由功能。
网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。
基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
3.XMPP通过TCP传输的数据
XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。
XMPP的核心部分就是一个在网络上分片断发送XML的流协议,这个流协议是XMPP的即时通讯指令的传递基础。
2.5Android2D图形编程
1、SimpleGraphicsinView:
就是直接使用Android已经实现的一些画图操作,比如说images,shapes,colors,pre-definedanimation等等。
这种方式只能画静态或者极为简单的2D图画,对于实时性很强的动画,高品质的游戏都是没法实现的。
2、Canvas:
首先我们要明白这个Canvas是一个2D的概念,是在Skia中定义的。
也就是说在这个方式下还是说的画2D图形。
2.6MVC模式简介
整个系统采用了MVC模式进行设计。
MVC模式是一种流行的软件设计模式,它把系统分为3个模块:
模型(Model)、视图(View)和控制器(Controller)。
各个模块的功能说明参见表2.1
表2.1MVC的三个模块
MVC模块
描述
模型
代表应用程序状态和业务逻辑
视图
提供可交互界面,向客户显示模型数据
控制器
响应客户的请求,根据客户的请求来操纵模型,并把模型的响应结果经由视图展现给客户
各个模块之间的相互作用如图2.2所示。
采用MVC模式有很多好处:
一是能将显示、逻辑和数据分开,某一方面的改变不会影响另一方面;其次是可以在不更改视图显示的情况下,更改控制器,以达到更改视图与用户交互的响应模式的目的。
图2.2MVC模型图
第3章系统的分析与实现
游戏对用户界面的要求较高,需达到人性化:
美观大方、便于操作,个性化:
游戏界面时尚靓丽、别具一格,最好能做到自定义皮肤之类的。
本游戏是使用即时通讯协议进行通信的,所以,实时的游戏效果、即时聊天以及在线探测是必须做到用户体验良好的。
数据存储方面,需存储游戏的配置信息、对局的胜负信息、对局的过程信息。
3.1系统分析
本系统的定位是:
cnChess中国象棋手机游戏是运行在Android开源手机操作系统平台上的支持双人联网对战的一款手机游戏。
由于对国际国内3G移动应用的前景看好,另外也对游戏开发有很大的兴趣,决定开发一款基于Android手机操作系统的中国象棋手机游戏。
结合当前移动开发的形式,初步构想之后,定下“基于Android手机操作系统的中国象棋游戏应用”应该是这样一款休闲游戏:
以3G方式连入互联网;支持双人之间的游戏互动;支持即使聊天以及在线探测;支持游戏过程记录及回放;支持人机对战;游戏界面布局人性化、个性化;支持紧急事件处理(如电话打入、电池没电等)。
可能的话,进行Wi-Fi编程,实现“局域网”对局。
3.1.1 系统功能分析
本系统的基本功能主要有三大块:
●即时聊天:
方便玩家的交流学习;
●象棋对弈:
游戏的联网互动以及即时性,是本程序与一般的象棋游戏的不同;
●战绩统计:
用于统计玩家的对弈胜负情况。
详细的系统功能分析图如图3-1所示。
图3-1cnChess系统功能结构图
本系统的执行流程较简单,进入系统后有五个选项:
联网对局;XMPP设置;查看胜负情况;查看开发者信息及用户帮助信息;退出游戏。
在联网对局前,XMPP连接设置必须是已经配置好的,否则无法连接jabber服务器,不能进入对局界面。
系统主要的输入输出及模块间的调用情况用IPO图表示如图3-2:
图3-2cnChessIPO图(输入一处理一输出图)
3.1.2 系统流程分析
系统流程分析是软件工程图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。
本系统采用XMPP协议进行网络的连接、数据的交换。
站在用户的角度来看,用户之间的信息交流是端对端的;但是站在程序设计开发者的角度来看,数据其实是要经过jabber服务器的。
从设计开发者的角度描述系统的数据交互模式,如图3-3。
图3-3系统交互模式图
3.1.3 系统数据流分析
cnChess手机游戏系统需要储存的主要数据有XMPP网络连接的配置信息以及走棋的胜负信息。
系统的数据流图如图3-4所示。
图3-4 系统数据流图
3.2系统数据库设计
3.2.1系统E-R图
系统使用SQLite轻量级数据库进行数据的储存和管理。
用户可根据自己的需要进行XMPP网络连接的配置以及胜负情况的查看和清空。
系统的E-R图如图3-5所示。
图3-5系统E-R图
3.2.2数据库表设计
本程序采用轻量级数据库SQLite存储管理数据,数据库名称为Datas.db。
Datas.db数据库含有两张表,两张表的名称以及字段属性等定义如下:
scoreTable(id,winning,falling,peace),对局得分表主要用来储存对局的胜负信息;settingsTable(id,host,port,service,partnered,userID,userPWD),网络连接配置表主要用来储存XMPP网络连接配置。
3.3面向对象的系统设计
本系统使用面向对象的开发思想、UML建模方法、MVC三层架构、GoF的部分设计模式编码设计开发,便于后续的软件扩展。
下面将从系统文件组织结构,系统用例图,系统类图以及系统三个角度对系统进行设计方面的说明。
3.3.1系统文件组织结构
一个Android程序由AndroidLibrary、src、ReferencedLibraries、res、AndroidManifest.xml组成。
其中AndroidLibrary为Android系统类库,src内为程序员的代码包,ReserencedLibraries为第三方开发包,res为程序所要用到的资源(如图片,音视频文档,界面布局xml文档等)存放的文件夹,AndroidManifest.xml为程序的主配置声明及版本说明文件。
本系统的简要文件组织结构如图3-6所示。
图3-6项目文件组织结构
3.3.1用例的设计
系统的用例主要有三大类:
游戏逻辑及流程控制类,走棋及聊天类,网络连接类。
以下为系统的详细用例图,各用例作用范围及相互间的关系如图3-7所示。
图3-7系统用例图
3.3.2类的设计
根据系统用例图,站在类的功能角度进行分析设计,cnChess程序的类主要分以下五种:
界面显示类、逻辑及流程控制类、数据管理类、网络连接类、对弈控制类。
各种类的Java类主要功能说明如下:
界面显示类:
主要用来实现游戏的UI界面布局以及屏幕的刷新等功能,如SettingsDialog、ViewScore、ChatDialog等类;
数据管理类:
为保持数据的安全性、完整性及一致性,所有的类必须通过数据管理类进行数据的存取,如SettingsManager、DataManager等类;
逻辑及流程控制类:
主要负责协调各模块之间的调用及流程的跳转,传递模块之间的信息等功能,如cnChess、startGame等类;
网络连接类:
用于连接网络,对需要发送的数据进行加密解密,发送数据,状态监听,数据接收等功能,如ConnectDial、ogXMPPClient等类;
对弈控制类:
主要为对弈过程中各面向对象的抽象模型,也进行必要的数据处理,如BoardView、Umpire等类。
3.3.3系统交互模式的设计
序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。
序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达[10]。
用例常常被细化为一个或者更多的序列图。
序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。
当把这个系统移交给另一个人或组织时,这个文档很有用。
用例viewScore的顺序图简要的说明了用户是如何与SQLite数据库进行交互,看到自己的战绩这一事件的:
一、用户按下查看战绩的按钮(viewscore),系统得知这一指令,发出数据请求给SQLite管理类,数据库管理类查询到数据后,将数据返回给系统查看类,系统查看类将战绩数据显示在手机屏幕上;
二、用户发出清除战绩请求,逻辑控制类将这一请求信息发送给SQLite管理类,管理类清除数据后,将结构返回给逻辑控制类,逻辑控制类发送屏幕更新指令,用户看到屏幕显示数据已更新。
图3-8viewScore用例的顺序图
网络连接设置用例Setting的顺序图:
一、用户发出查看连接配置请求,SettingsDialog显示类请求数据库管理类去数据库读取数据,数据库管理类读取到数据后,将数据返回给显示类,显示类显示用户请求的配置信息;
二、用户输入新的XMPP网络连接配置信息,SettingsDialog显示类请求添加或者更新网络配置信息,SQLite管理类获知更新请求后更新数据库。
图3-9Setting用例的顺序图
游戏对局用例startGame涉及到相关的类较多,如图3-10所示:
一、用户按下开始游戏键,系统提示是否要联网游戏,用户确认“是”后,系统读取XMPP配置信息建立手机到服务器端的网络连接;若用户确认“否”,则系统退回到游戏主界面(此时系统未连上互联网);
二、用户选择聊天菜单,startGame进行相应的逻辑处理,启动聊天对话框;用户输入聊天信息,按下发送按钮,消息发送到对方的服务器帐号,与此同时,在用户自己的聊天记录单里面显示;
三、用户进行走动棋子或者悔棋等请求信息,startGame接收到按键事件或者触摸屏事件后,将相应的信息转交XMPPClient进行信息的发送;XMPPClient还负责客户端监听,当有对方有走棋等信息发送过来时,XMPPClient将分辨是否为cnChess程序格式的信息并进行解码解包之后将信息转交给startGame,startGame对转交过来的信息进行处理。
图3-10startGame用例的顺序图
第4章模块的实现
需求分析阶段回答了目标软件系统“要做什么”的问题,而软件设计阶段则需要回答目标软件系统“要怎么做”以实现用户需求的问题[12]。
在cnChess手机游戏系统的软件设计建模阶段,主要是以需求分析阶段的成果(需求分析模型)作为输入,进行系统的体系结构设计、类的详细设计和用例实现设计。
总体来说,cnChess系统的软件设计建模阶段是对分析建模结果的进一步精化和调整。
图4-1cnChess的项目开发流程
项目要实现的模块主要有四部分。
第一部分是手机游戏的界面设计和背景音效的设计。
和PC上的游戏开发有些许不同,手
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 操作系统 中国象棋 手机 游戏