首页 基于Android操作系统的中国象棋手机游戏_毕业论文

基于Android操作系统的中国象棋手机游戏_毕业论文

举报
开通vip

基于Android操作系统的中国象棋手机游戏_毕业论文 石家庄科技信息职业学院 毕 业 论 文 题目:基于Android操作系统的中国象棋手机游戏 学 号: 090124012 姓 名: 王麒 专业班级:软件技术(游戏方向) 09-24 班 指导教师: 刘永伟 完成日期: 2011-12-18 摘要:Chess是运行在Android平台上的一款支持双人联网对局、即时聊天、对弈记录的休闲棋牌...

基于Android操作系统的中国象棋手机游戏_毕业论文
石家庄科技信息职业学院 毕 业 论 文 题目:基于Android操作系统的中国象棋手机游戏 学 号: 090124012 姓 名: 王麒 专业班级:软件技术(游戏方向) 09-24 班 指导教师: 刘永伟 完成日期: 2011-12-18 摘要:Chess是运行在Android平台上的一款支持双人联网对局、即时聊天、对弈 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 的休闲棋牌类手机游戏。 系统采用面向对象的编程思想进行构思与分析设计;使用UML构建软件模型;使用MVC架构模式实现系统的整体架构及各模块之间的接口设计;在系统的实践过程中还采用了部分GoF的设计模式进行编码与开发。 本文详细系统地阐述了在Android平台上,面向对象的软件开发思想对Chess游戏系统的分析、设计及实现过程。在项目的实践过程中,主要用到了以下技术:手机布局主要使用了XML设计,程序及其子模块的生命周期管理用到了Activity 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 控制,数据储存方面使用的是轻量级数据库SQLite、网络通讯部分使用的是XMPP即时通讯协议进行数据的传输、对弈的画面更新使用的是手机的2D图形编程。本论文的前半部分将简要介绍系统相关的行业信息及基础的技术知识,后半部分将对本人在系统各模块中所使用的关键技术的实现进行了全面的介绍。 关键词:联网对弈;中国象棋;手机游戏 ;Android平台 ABSTRACT:CnChess is a Chinese Chess game that running on the Android platform.It 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 GoF's 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 introduction. Keywords: Network of games; Chinese chess; Mobile Games; Android platform 目 录 前言………………………………………………………………….…4 1.1绪论……………………………………………………………..…4 1.2相关研究综述……………………………………………….….…4 Androi.d手机操作系统的发展历程…………….……………..….4 1.3研究的目的与内容……………………………………………..…5 1.3.1 研究目标…………………………………………………….…5 1.3.2 研究主要内容………………………………………………….5 Android程序设计相关技术概论…………………………………..6 2.1 XUL界面布局……………………………………………….….6 2.2 Android的Activity组件……………………………………6 2.3 SQLite数据库………………………………………………….7 2.4 Android 2D图形编程…………………………………………7 游戏所需类的分析与实现………………………………………… 6 3.1游戏的框架简介…………………………………………..……8 3.2各个类的简要介绍…………………………………..…………8 3.3游戏中象棋规则类的实现………………….…………….….10 论文总结…………………………………………………………… 27 参考文献…………………………………………………………… 28 致谢………………………………………………………………………...29 一、前言 1、绪论 随着3G移动网络应用的推广,手机游戏的规模、复杂程度日益增强;其技术手段、设计思想、系统体系结构都发生了深刻的变化。手机操作系统正朝着高处理能力、多功能、智能化的方向发展。近年来,网络文化市场发展很快,随着互联网的迅速普及、宽带的接入社区和家庭,我国网络游戏市场发展迅速并进入了一个高速增长期,并已经创造了较大的产值,带动了相关产业的发展。 如今网络上的提供免费中国象棋游戏,大多数是单机版的,界面单一,功能单一。本系统将实现在网络上对战的中国象棋功能;还对在下棋界面美化,以及下棋中可能出现的意外进行了处理。这样中国象棋休闲游戏将不在是一个功能单一界面枯燥的游戏,而是一个较完善的休闲游戏。 在国内外Android手机应用开发如火如荼、日益盛行的大背景下,本人决定开发一款界面友好、操作简单,支持人机对弈、数据记录、智能规则判断的手机休闲游戏。 2、相关研究综述 近年来,国内外的专家学者以及一线的开发人员从理论、方法、技术等不同的角度对Android手机操作系统进行了一定的研究。本小节将从Android手机操作系统的发展历程、研究现状、程序开发设计简介四个方面分析总结国内外的相关研究结果2.1 Android手机操作系统的发展历程 Android是Google于2007年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 表2.1 Android手机操作系统的发展阶段 发展阶段 阶段特征 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 进军上网本 3、研究的目标与内容 3.1 研究目标 本项目主要研究的目标分为:程序设计思想实践改进目标、Android平台手机开发技术的研究目标。 (1)运用面向对象的编程思想统一过程,对Chess中国象棋手机游戏的系统结构、过程、功能等要素进行可视化的描述,为Android程序设计的可视化提供方法、技术上的支持,为系统的理论模型和软件建模提供参照。 (2)本系统中使用了多种基于Android平台的软件开发技术,根据要实现的系统功能,系统需要使用到的技术及技术研究的目标主要有: 手机游戏用户界面的人性化、个性化界面布局,给用户以良好的游戏体验; 移动设备上的图形编程,提供流畅靓丽的游戏过程界面; 3.2 研究主要内容 项目研究的内容主要有以下二大块: 第一部分是手机游戏的界面设计和背景音效的设计。和PC上的游戏开发有些许不同,手机游戏更加的注重用户体验,一个人性化的、时尚靓丽的游戏界面和优美个性化的音效设计是一个成功的手机游戏要达到的基本要求。 第二部分是对局智能程序的设计。可以和设计好的AI(Artificial Intelligence)算法进行游戏。人工智能程序设计是一项对算法要求很高的程序设计,特别是在手机这种硬件资源紧缺的环境中,更是需要一个高效的算法来提供强大的AI对局支持 Android程序设计相关技术概论 Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次: 图2.1Android系统架构 2.1 XUL界面布局 XUL 是一种基于 XML 的语言,因此需要对 XML(特别是 XML 名称空间)很熟悉。XUL是英文“XML User Interface Language”的首字母缩写。顾名思义,它是一种应用XML来描述使用者界面的标示语言。 2.2 Android的Activity组件 Activity,一般代表手机屏幕的一屏,相当于浏览器的一个页面。在Activity中添加view,实现应用界面和用户交互。一个应用程序一般由多个Activity构成,这些Activity之间可互相跳转,可进行页面间的数据传递。每个Activity都有自己的生命周期。 2.3 SQLite数据库 在Android平台上,集成了一个嵌入式关系型数据库—SQLite。SQLite是支持结构化查询的轻量级数据库,能很好得适应于移动设备的应用。 Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。 2.4 Android 2D图形编程 1、Simple Graphics in View:就是直接使用Android已经实现的一些画图操作,比如说images,shapes,colors,pre-defined animation等等。这种方式只能画静态或者极为简单的2D图画,对于实时性很强的动画,高品质的游戏都是没法实现的。2、Canvas:首先我们要明白这个Canvas是一个2D的概念,是在Skia中定义的。也就是说在这个方式下还是说的画2D图形。 图2.2 游戏 流程图 破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word 游戏所需类的分析与实现 3.1 游戏的框架简介 图5.1 游戏的类框架 按照程序运行的顺序介绍各个类的作用以及整个运行框架,步骤如下: 启动游戏,首先被创建的是ChessActivity,而在ChessActivity中首先将用户界面显示成欢迎界面WelcomeView。 在显示欢迎界面的同时,启动WelcomeViewThread线程生成欢迎界面动画。 当玩家单击“菜单”按钮时将进入菜单界面MenuView,在菜单界面会根据玩家的不同选择执行不同的操作。 当玩家单击“帮助”菜单时,将进入帮助界面HelpView。 而当玩家单击开始游戏菜单时,进入的将是游戏界面GameView,进入游戏界面的同时启动TimeThread线程计算玩家的思考时间。 当玩家或者电脑走棋时,会根据规则类GuiZe进行判断,然后产生一个走法ChessMove。 当游戏过程中,玩家同样可以随时单击“退出”按钮来返回到菜单界面。 3.2各个类的简要介绍 (1)共有类 Activity的实现类ChessActivity,该类是通过扩展基类Activity得到的,是整个游戏的控制器,也是整个游戏程序的入口。 (2)辅助界面相关类 欢迎界面类WelcomeView:该类为游戏欢迎界面的实现类,主要负责欢迎界面的绘制工作。 欢迎界面动画生成类WelcomeViewThread:该类是为欢迎界面服务的,主要是通过更改欢迎界面中图片的坐标来实现动画效果。 帮助界面类HelpView:该类为帮助界面的实现类。 菜单界面类MenuView:该类为菜单界面的实现类,负责绘制菜单界面以及对菜单界面的屏幕进行监听。 图3.2.1 欢迎界面 (3)游戏界面相关类 游戏界面类GameView:该类为游戏程序中最重要的类,负责绘制游戏过程中所有的信息,如棋盘、棋子、各个按钮以及胜利或失败菜单等。 象棋规则类GuiZe:该类是象棋规则的实现类,其中包含所有棋子的走棋规则以及当前棋牌某方的所有可能走法。 思考时间线程TimeThread:该类为计算思考时间的线程类。 走法类ChessMove:该类为棋子的走法的封装类,包含棋子的名称、出发点以及目标点。 图3.2.2 游戏界面 3.3游戏中象棋规则类的实现 package wyf.ytl; import java.util.ArrayList;//引入相关包 import java.util.List; /** * * 该类是象棋的规则类,其他类通过调用canMove方法给出起始位置与结束位置 * 其他类通过调用searchAGoodMove方法得到最当然棋局最好的走法 * 而其中的allPossibleMoves方法得到的是当前棋局的所有的走法 * */ public class GuiZe { boolean isRedGo = false;//是不是红方走棋 public boolean canMove(int[][] qizi, int fromY, int fromX, int toY, int toX){ int i = 0; int j = 0; int moveChessID;//起始位置是什么棋子 int targetID;//目的地是什么棋子或空地 if(toX<0){//当左边出界时 return false; } if(toX>8){//当右边出界时 return false; } if(toY<0){//当上边出界时 return false; } if(toY>9){//当下边出界时 return false; } if(fromX==toX && fromY==toY){//目的地与出发点相同, return false; } moveChessID = qizi[fromY][fromX];//得到起始棋子 targetID = qizi[toY][toX];//得带终点棋子 if(isSameSide(moveChessID,targetID)){//如果是同一阵营的 return false; } switch(moveChessID){ case 1://黑帅 if(toY>2||toX<3||toX>5){//出了九宫格 return false; } if((Math.abs(fromY-toY)+Math.abs(toX-fromX))>1){//只能走一步 return false; } break; case 5://黑士 if(toY>2||toX<3||toX>5){//出了九宫格 return false; } if(Math.abs(fromY-toY) != 1 || Math.abs(toX-fromX) != 1){//走斜线 return false; } break; case 6://黑象 if(toY>4){//不能过河 return false; } if(Math.abs(fromX-toX) != 2 || Math.abs(fromY-toY) != 2){//相走“田”字 return false; } if(qizi[(fromY+toY)/2][(fromX+toX)/2] != 0){ return false;//相眼处有棋子 } break; case 7://黑兵 if(toY < fromY){//不能回头 return false; } if(fromY<5 && fromY == toY){//过河前只能直走 return false; } if(toY - fromY + Math.abs(toX-fromX) > 1){//只能走一步,并且是直线 return false; } break; case 8://红将 if(toY<7||toX>5||toX<3){//出了九宫格 return false; } if((Math.abs(fromY-toY)+Math.abs(toX-fromX))>1){//只能走一步 return false; } break; case 2://黑车 case 9://红车 if(fromY != toY && fromX != toX){//只能走直线 return false; } if(fromY == toY){//走横线 if(fromX < toX){//向右走 for(i = fromX + 1; i < toX; i++){//循环 if(qizi[fromY][i] != 0){ return false;//返回false } } } else{//向左走 for(i = toX + 1; i < fromX; i++){//循环 if(qizi[fromY][i] != 0){ return false;//返回false } } } } else{//走的是竖线 if(fromY < toY){//向右走 for(j = fromY + 1; j < toY; j++){ if(qizi[j][fromX] != 0) return false;//返回false } } else{//想左走 for(j= toY + 1; j < fromY; j++){ if(qizi[j][fromX] != 0) return false;//返回false } } } break; case 10://红马 case 3://黑马 if(!((Math.abs(toX-fromX)==1 && Math.abs(toY-fromY)==2) || (Math.abs(toX-fromX)==2 && Math.abs(toY-fromY)==1))){ return false;//马走的不是日字时 } if(toX-fromX==2){//向右走 i=fromX+1;//移动 j=fromY; } else if(fromX-toX==2){//向左走 i=fromX-1;//移动 j=fromY; } else if(toY-fromY==2){//向下走 i=fromX;//移动 j=fromY+1; } else if(fromY-toY==2){//向上走 i=fromX;//移动 j=fromY-1; } if(qizi[j][i] != 0) return false;//绊马腿 break; case 11://红砲 case 4://黑炮 if(fromY!=toY && fromX!=toX){//炮走直线 return false;//返回false } if(qizi[toY][toX] == 0){//不吃子时 if(fromY == toY){//横线 if(fromX < toX){//想右走 for(i = fromX + 1; i < toX; i++){ if(qizi[fromY][i] != 0){ return false;//返回false } } } else{//向走走 for(i = toX + 1; i < fromX; i++){ if(qizi[fromY][i]!=0){ return false;//返回false } } } } else{//竖线 if(fromY < toY){//向下走 for(j = fromY + 1; j < toY; j++){ if(qizi[j][fromX] != 0){ return false;//返回false } } } else{//向上走 for(j = toY + 1; j < fromY; j++){ if(qizi[j][fromX] != 0){ return false;//返回false } } } } } else{//吃子时 int count=0; if(fromY == toY){//走的是横线 if(fromX < toX){//向右走 for(i=fromX+1;i5||toX<3){//出了九宫格 return false; } if(Math.abs(fromY-toY) != 1 || Math.abs(toX-fromX) != 1){//走斜线 return false; } break; case 13://红相 if(toY<5){//不能过河 return false;//返回false } if(Math.abs(fromX-toX) != 2 || Math.abs(fromY-toY) != 2){//相走“田”字 return false;//返回false } if(qizi[(fromY+toY)/2][(fromX+toX)/2] != 0){ return false;//相眼处有棋子 } break; case 14://红卒 if(toY > fromY){//不能回头 return false; } if(fromY > 4 && fromY == toY){ return false;//不让走 } if(fromY - toY + Math.abs(toX - fromX) > 1){//只能走一步,并且是直线 return false;//返回false不让走 } break; default: return false; } return true; } /** * * 电脑是通过该方法得到当前棋局最好的走法 */ public ChessMove searchAGoodMove(int[][] qizi){//查询一个好的走法 List ret = allPossibleMoves(qizi);//产生所有走法 try { Thread.sleep(4000);//睡眠四秒钟,以便调试 } catch (InterruptedException e) {//捕获异常 e.printStackTrace();//打印堆栈信息 } return ret.get((int)(Math.random()*ret.size())); } public List allPossibleMoves(int qizi[][]){//产生所有可能的走法 List ret = new ArrayList();//用来装所有可能的走法 for (int x = 0; x < 10; x++){ for (int y = 0; y < 9; y++){//循环所有的棋牌位置 int chessman = qizi[x][y]; if (chessman != 0){//当次位置不为空时,即有棋子时 if(chessman > 7){//是红方,即是玩家棋子时跳过 continue; } switch (chessman){ case 1://黑帅 if(canMove(qizi, x, y, x, y+1)){//向下走一格 ret.add(new ChessMove(chessman, x, y, x, y+1, 0)); } if(canMove(qizi, x, y, x, y-1)){//向上走一格 ret.add(new ChessMove(chessman, x, y, x, y-1, 0)); } if(canMove(qizi, x, y, x+1, y)){//向左走一格 ret.add(new ChessMove(chessman, x, y, x+1, y, 0)); } if(canMove(qizi, x, y, x-1, y)){//向右走一格 ret.add(new ChessMove(chessman, x, y, x-1, y, 0)); } break; case 5://黑士 case 12://红仕 if(canMove(qizi, x, y, x-1, y+1)){//左下走 ret.add(new ChessMove(chessman, x, y, x-1, y+1, 1)); } if(canMove(qizi, x, y, x-1, y-1)){//左上走 ret.add(new ChessMove(chessman, x, y, x-1, y-1, 1)); } if(canMove(qizi, x, y, x+1, y+1)){//右下走 ret.add(new ChessMove(chessman, x, y, x+1, y+1, 1)); } if(canMove(qizi, x, y, x+1, y-1)){//右上走 ret.add(new ChessMove(chessman, x, y, x+1, y-1, 1)); } break; case 6://黑象 case 13://红相 if(canMove(qizi, x, y, x-2, y+2)){//左上走 ret.add(new ChessMove(chessman, x, y, x-2, y+2, 1)); } if(canMove(qizi, x, y, x-2, y-2)){//左下走 ret.add(new ChessMove(chessman, x, y, x-2, y-2, 1)); } if(canMove(qizi, x, y, x+2, y+2)){//右下走 ret.add(new ChessMove(chessman, x, y, x+2, y+2, 1)); } if(canMove(qizi, x, y, x+2, y-2)){//右上走 ret.add(new ChessMove(chessman, x, y, x+2, y-2, 1)); } break; case 7://黑兵 if(canMove(qizi, x, y, x, y+1)){//直走 ret.add(new ChessMove(chessman, x, y, x, y+1, 2)); } if(y >= 5){//过河了 if (canMove(qizi, x, y, x - 1, y)) {//过河后向左走 ret.add(new ChessMove(chessman, x, y, x - 1, y, 2)); } if (canMove(qizi, x, y, x + 1, y)) {//过河走向右走 ret.add(new ChessMove(chessman, x, y, x + 1, y, 2)); } } break; case 14://红兵 if(canMove(qizi, x, y, x, y-1)){//向前走 ret.add(new ChessMove(chessman, x, y, x, y-1, 2)); } if(y <=4 ){//过河了 if (canMove(qizi, x, y, x - 1, y)) {//过河后向左走 ret.add(new ChessMove(chessman, x, y, x - 1, y, 2)); } if (canMove(qizi, x, y, x + 1, y)) {//过河走向右走 ret.add(new ChessMove(chessman, x, y, x + 1, y, 2)); } } break; case 8://红将 if(canMove(qizi, x, y, x, y+1)){//向下走一格 ret.add(new ChessMove(chessman, x, y, x, y+1, 0)); } if(canMove(qizi, x, y, x, y-1)){//向上走一格 ret.add(new ChessMove(chessman, x, y, x, y-1, 0)); } if(canMove(qizi, x, y, x+1, y)){//向右走一格 ret.add(new ChessMove(chessman, x, y, x+1, y, 0)); } if(canMove(qizi, x, y, x-1, y)){//向左走一格 ret.add(new ChessMove(chessman, x, y, x-1, y, 0)); } break; case 2://黑车 case 9://红车 for(int i=y+1; i<10; i++){//向下走 if(canMove(qizi, x, y, x, i)){ //可以走时 ret.add(new ChessMove(chessman, x, y, x, i, 0)); }else{//不可以走时直接 break break; } } for(int i=y-1; i>-1; i++){//向上走 if(canMove(qizi, x, y, x, i)){//可以走时 ret.add(new ChessMove(chessman, x, y, x, i, 0)); }else{//不可以走时 break; } } for(int j=x-1; j>-1; j++){//向走走 if(canMove(qizi, x, y, j, y)){//可以走时 ret.add(new ChessMove(chessman, x, y, j, y, 0)); }else{//不可以走时 break; } } for(int j=x+1; j<9; j++){//向右走 if(canMove(qizi, x, y, j, y)){//可以走时 ret.add(new ChessMove(chessman, x, y, j, y, 0)); }else{//不可以走时 break; }} break; case 10://红马 case 3://黑马 if(canMove(qizi, x, y, x-1, y-2)){//向上左走“日”字 ret.add(new ChessMove(chessman, x, y, x-1, y-2, 0)); } if(canMove(qizi, x, y, x-1, y+2)){//向下走“日”字 ret.add(new ChessMove(chessman, x, y, x-1, y+2, 0)); } if(canMove(qizi, x, y, x+1, y-2)){//向上右走“日”字 ret.add(new ChessMove(chessman, x, y, x+1, y-2, 0)); } if(canMove(qizi, x, y, x+1, y+2)){//向下右走“日”字 ret.add(new ChessMove(chessman, x, y, x+1, y+2, 0)); } if(canMove(qizi, x, y, x-2, y-1)){//向上右走“日”字 ret.add(new ChessMove(chessman, x, y, x-2, y-1, 0)); } if(canMove(qizi, x, y, x-2, y+1)){//向下右走“日”字 ret.add(new ChessMove(chessman, x, y, x-2, y+1, 0)); } if(canMove(qizi, x, y, x+2, y-1)){//向上右走“日”字 ret.add(new ChessMove(chessman, x, y, x+2, y-1, 0)); } if(canMove(qizi, x, y, x+2, y+1)){//向下右走“日”字 ret.add(new ChessMove(chessman, x, y, x+2, y+1, 0)); } break; case 11://红砲 case 4://黑炮 for(int i=y+1; i<10; i++){//向下走时 if(canMove(qizi, x, y, x, i)){//当可以走时 ret.add(new ChessMove(chessman, x, y, x, i, 0)); } } for(int i=y-1; i>-1; i--){//向上走时 if(canMove(qizi, x, y, x, i)){//当可以走时 ret.add(new ChessMove(chessman, x, y, x, i, 0)); } } for(int j=x-1; j>-1; j--){//向左走时 if(canMove(qizi, x, y, j, y)){//当可以走时 ret.add(new ChessMove(chessman, x, y, j, y, 0)); }} for(int j=x+1; j<9; j++){//向右走时 if(canMove(qizi, x, y, j, y)){//当可以走时 ret.add(new ChessMove(chessman, x, y, j, y, 0)); } } break; }} }} return ret.isEmpty() ? null : ret;//当ret中没有走法时,返回空,有时返回ret } public boolean isSameSide(int moveChessID, int targetID){//判断两个子是否为同一阵营 if(targetID == 0){// 当目标地位空地时 return false; } if(moveChessID>7&&targetID>7){//当都为红色棋子时 return true; } else if(moveChessID<=7&&targetID<=7){//都为黑色棋子时 return true; } else{//其他情况 return false; }}} 图1 棋子“帅”的走法 图2 棋子“兵”的走法 论文总结 论文提出了Android平台上中国象棋手机游戏系统的软件建模方法,并以模型为指导开发了Chess手机有机游戏系统,一定程度上验证了建模方法的正确性和构建模型的有效性。根据目前的研究进展,未来的研究工作将从以下几个方面进一步加强: (1)手机游戏系统模型的进一步改进,包括RUP在对局控制模块、网络信息传输模块上的应用及模型的进一步细化和完善,使模型在迭代、循环、重复的过程中不断改进。 (2)借鉴国内外最新的人工智能技术,在已有工作的基础上进行cnChess系统的迭代增量开发,加入AI智能对局模块等,使用户在离线或者无对手的情况下能够进行人机对战,更好得满足用户的需求。 (3)加强系统的个性化研究。系统目前还没有强大的数据统计功能,用户的帐号与战绩信息的管理、即时聊天的记录、对弈过程的记录这些大量重要的信息还没有全部被保存下来。 提供一个智能化,个性化,具备强大数据记录、统计及分析的中国象棋手机游戏是下一步的工作目标。 参考文献 [1] 张跃平.Java课程设计.第2版.北京:清华大学出版社,2008. [2] 谭浩强.java程序设计基础.第1版.北京:清华大学出版社,2008. [3] 吴亚峰.Android2.0游戏开发实战宝典.第1版.北京:人民邮电出版社,2010. [4] 余志龙. Android SDK开发范例大全 第2版.北京:人民邮电出版社,2010. [5] 杨丰盛. Android技术内幕:系统卷 第1版.北京:机械工业出版社,2011. [6] 王正军 著,《Java程序设计》,北京:人民邮电出版社,2006年。 [7] 王树伟 著,《Java游戏编程基础》,北京:电子工业出版社,2005年。 [8]荣钦科技编著. Java游戏设计.北京:科海电子出版社 [9]夏云龙编著.最新Java使用手册.电子工业出版社 [10] 武莹 彭文明编著Java开发实用编程200例中国铁道出版社2006年 [11] 四维科技 赵辉 叶子青编著. Java系统开发实例精粹.人民邮电出版社.2005年8月 [12] 同济大学应用数学系主编.《 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 数学--线性代数》. 高等教育出版社. 第4版 [13] 夏少琼.《Photoshop实战教程--游刃有余》. 暨南大学出版社. 2008年第1版 [14] (美)贝斯克.《游戏开发与制作》.清华大学出版社.未著明出版时间 致 谢 写到这里,论文已经告一个段落了,时光茬再,三年的生活在这篇论文完成之后很快就要结束了。回想这三年的大学生活,点点滴滴犹在心头。正是有许许多多老师同学朋友的关心,我才能顺利地完成学业;正是家人在这生活中的鼓励和支持,我才能有今天。所以这里我要向所有的老师和我的家人以及所有关心爱护过我的人们表示我最真挚的谢愈。 感谢我的老师们,在课堂上、在工作室以及在毕业设计及毕业论文的撰写期间,您对我们学习上的悉心指导,对我们在学术方面的严格要求让我了解到了作为一个本科生应该具备的基本技能和做事的心态。 感谢四年来与我一起风风雨雨走过的同学以及曾经的和现在的室友们,感谢你们在大学三年这段时间对我的支持和帮助。在大学的三年里,我们一起互相学习,互相讨论,相处得很融洽,也很愉快。感谢他们三年来的帮助和支持,他们每个人身上都有我要学习的优点,特别是他们身上持之以恒和孜孜不倦的学习态度,带动我,鼓励我,使我没有虚度这三年的学习时间。点点滴滴,铭记心头,谢谢你们。 最后,感谢我所有的家人和朋友在我此期间给予我的鼓励、支持和关环。 谢谢大家! 0
本文档为【基于Android操作系统的中国象棋手机游戏_毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
北溟愚鱼
暂无简介~
格式:doc
大小:343KB
软件:Word
页数:0
分类:工学
上传时间:2018-09-22
浏览量:5