Android五子棋毕业论文作文14600字

三年级作文

南开大学滨海学院

本 科 生 毕 业 设 计

中文题目:基于Android 系统的手机游戏设计与实现

外文题目:The Design and Implementation of

学 号: 09990039_ _

姓 名: 陈 世 易 _____

年 级: 2009 级 _

系 别: 计算机科学系

专 业:

(数字媒体技术与应用方向)

完成日期: 2013年3月20日 __

指导教师: __ __ _刘嘉欣__________

南开大学滨海学院本科毕业论文(设计)诚信声明

本人郑重声明:所呈交的毕业论文(设计),题目《基于Android 的手机游戏》 是本人在指导教师的指导下,独立进行研究工作所取得的成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明。除此之外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明的法律结果。

毕业论文(设计)作者签名:陈世易

日期: 2013年3月20日

摘 要

I 基于Android 系统的手机游戏设计与实现

摘 要

在现代手机应用中,Android 智能手机在中国的占有率为86%,Android 系统在中国手机市场上扮演着重要的角色。因此,各种针对Android 系统的小程序和小游戏层出不穷,为Android 手机用户提供大量的便捷与娱乐。

本文围绕“基于Android 系统的手机游戏”实现五子棋游戏的人人对战和人机对战程序的设计和应用系统的开发课题为背景,介绍了Android 平台上以Java 为语言编写游戏的过程。本程序主要实现了五子棋的人机对战和人人对战。并程根据五子棋特定下法设计了一套简单的人工智能,设计出一个个简单的Android 五子棋小游戏。

关键词:Android Java 人工智能 手机游戏

Abstract

II The mobile phone game based on Android system

Abstract In the modern mobile phone applications, Android intelligent mobile phone in China 's share of 86%, Android system plays an important role in the Chinese mobile phone market. Therefore, a variety of Android system for small programs and games emerge in an endless stream, provide a lot of convenience and entertainment for the Android mobile phone users.

This paper on the "Android system mobile phone game" implementation of Gobang game for all the battle program design and application system development project as the background based on man-machine war and, on the platform of Android is introduced to Java for the process to prepare the game language. This procedure is mainly realized gobang man-machine war and all war. According to the specific method and process of Gobang design a set of simple artificial intelligence, design a simple Android backgammon game.

Keywords: Android Java Atificial intelligenc mobile game

目 录

III 目 录

摘 要 . ........................................................................................................ I ABSTRACT . .............................................................................................. II

第1章 绪论 . ............................................................................................ 5

1.1 背景 ................................................................................................................ 5

1.2 提出问题 ........................................................................................................ 5

1.3 本文组织结构 .............................................................................................. 6

第2章 相关技术介绍 ............................................................................ 7

2.1 J AVA . ................................................................................................................. 7

2.1.1 Java介绍 . ........................................................................................................... 7

2.1.2 Java VS C++ . ...................................................................................................... 7

2.1.3 开发工具 . ............................................................................................................ 7

2.2 A NDROID 平台 ................................................................................................ 8

2.2.1 Android体系构架 . ............................................................................................. 9

2.2.2 Android系统核心 . ........................................................................................... 10

2.3 人工智能 ...................................................................................................... 10

第3章 系统设计................................................................................... 12

3.1 总体设计 ...................................................................................................... 12

3.2 模型建立 ...................................................................................................... 13

3.3 控制模块设计 .............................................................................................. 13

3.4 显示模块设计 .............................................................................................. 14

3.5 人工智能设计 .............................................................................................. 15

第4章 系统实现................................................................................... 16

4.1 细化的设计描述 .......................................................................................... 16

4.1.1 游戏初始化模块 . .............................................................................................. 17

4.1.2 主控制模块 . ...................................................................................................... 18

4.1.3 落子模块 . .......................................................................................................... 19

目 录

IV 4.1.4 胜负判断模块 . .................................................................................................. 20

4.2 人工智能算法 .............................................................................................. 20

4.3 实现效果 ...................................................................................................... 22

第5章 总结与展望 .............................................................................. 23

参考文献 . .................................................................................................. 24

致 谢 . ...................................................................................................... 25

第1章 绪论

5 第1章 绪论

1.1 背景

智能手机有Symbian 、Windows Phone、Android 、IOS 、BlackBerry 10这些系统。Android 系统鹤立鸡群占据着巨大的市场份额,随着人们接触的手机时间越来越长,针对Android 系统的程序和游戏层出不穷。每个手机都有手机游戏,是人们闲暇时间的一种娱乐方式,而因为Android 的巨大市场份额,Android 平台下的手机游戏更是受到青睐。手机游戏不仅操作方便,还能开发思维,让用户在休闲的同时拓展了思维增长了见识。

手机的小巧便捷,方便的特性成为我们日常生活中必备通讯工具。拥有巨大市场空间的手机平台游戏会着智能手机的普及和应用必然会迎来新一轮的热潮。在新一轮的热潮中,Android 手机客户量大,所以手机小游戏的发展空间很可观。

1.2 提出问题

五子棋对思维和协调能力有益,能使我们集中精力,对于事务的耐心也得到了提高,培养我们的逻辑思维能力,对智力以及记忆都很有帮助。本文围绕着五子棋小游戏展开Java 和Android 的相关技术介绍,并把整个Android 平台下五子棋的设计展示出来。

把整个五子棋设计分为初始化模块、主控制模块、落子模块、胜负判断模块和人工智能模块。各个模块分工不同,把整个小游戏完善起来。设计的重点是人工智能模块,进而实现人机对战。设计中的人工智能是利用遍历的方法进行三次搜索,综合考虑当前局势从中选出最佳位置下棋,但不足之处是没有考虑到极大值极小值问题。

开始游戏就直接进入主界,主界面用了一个TextView 来说明怎样来进行游戏,根据用户触发相应的操作开始不同的对战方式。在游戏中,用画线来布满整个的手机屏幕,并且设定各个线相交的可触摸点和处理分析用户的触摸从而实现落子。在结束后用TextView 来进行了文字的说明和提示。

第1章 绪论

6 本文的主要目的是实现Android 平台下的五子棋,使我对Android 有更好的应用水平和为以后的软件设计道路打下坚实的基础。

1.3 本文组织结构

本文是以Android 平台下的五子棋游戏设计为核心,总共划分为五章。第一章是整篇论文的概述,大致说明智能手机、手机游戏、五子棋小游戏的相关背景,以及设计中各个模块的需求。第二章对编程用的语言平台进行相关的技术介绍。在第三章中对整个游戏进行总体设计说明各个模块的设计方向。第四章把每个模块的功能具体化,提供对应的流程图或者伪代码。在论文的结尾进行总结。

第2章 相关技术介绍

7 第2章 相关技术介绍

2.1 Java

现今计算机编程语言种类繁多,例如C++、VB 、BASIC 、PASCAL 。而Android 利用的是Java 语言

2.1.1 Java介绍

Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC 、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。因为有了移动互联网全球化和云计算,Java 有更好的优势和前景。

Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

Java 平台有JavaEE 、Java SE、Java ME这三种版本。

2.1.2 Java VS C++

Java 设计的本意是要简化C++,但它在嵌入式系统中的成功C++无法比拟,它具有强大的网络功能使得它在网络编程和嵌入式系统中独占鳌头。

C++运行效率高,可以对具体的平台进行优化;Java 的开发效率高,移植性好。应该根据具体的应用要求,选择合适的开发工具。在执行效率高的应用面前,C++比较有优势。Java 的优势体现在更新换代快,使用人数多的应用软件上。

2.1.3 开发工具

现在常用的Java 项目开发环境有:JBuilder 、VisualAge for Java、Forte for Java, Visual Cafe 、Eclipse 、NetBeans IDE 、JCreator +J2SDK、JDK+记事本、EditPlus+ J2SDK等等。

现今Eclipse 应用广泛、功能强大,而且还可已按自己的需要下载各种插件

第2章 相关技术介绍

8 来扩展它的功能,所以本设计选用的工具是Eclipse 。 Eclipse 是一个开放源代码的、基于Java 的可扩展开发平台。Eclipse 是利用各种插件来建立开放环境从而提供框架和服务的。Eclipse 附带了一个标准的插件集,包括Java 开发工具JDK 。

被应用最多的Java SDK 就是JDK 了。Java 的运行环境、工具、基础类库都需要以JDK 为基础。

Eclipse 的开发环境如图2-1所示:

图2-1:Eclipse 的开发环境

2.2 Android 平台

手机与人们的生活息息相关,形形色色的手机充斥着全球的手机市场。各种手机平台竞争此起彼伏。市场上比较常见的手机平台有塞班、Windows Phone、IOS 、BlackBerry 10、Android 这五种。

塞班这个操作系统广泛应用与诺基亚手机,但由于缺乏创新,塞班面临着各种困境。

Windows Phone 是微软发布的一款手机操作系统,它将微软旗下的Xbox Live 游戏、Xbox Music音乐与独特的视频体验整合至手机中。

IOS 是由苹果公司开发的手持设备操作系统。IOS 操作系统简洁易上手,能不断给用户不同的用户体验。

第2章 相关技术介绍

9 BlackBerry 10,是黑莓公司的手机系统,只有黑莓手机利用这种系统,市场份额不大,但是有一批忠实的客户。

上述四种平台,不是发展时间短就是市场份额低,而Android 一枝独秀,它是Google 于2007年11月05日宣布的基于Linux 平台的开源移动操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

Android 的架构分底层、中层、上层三部分。底层只提供基本功能,利用C 语言开发的Linux 被当作基础;中间层的结构是由C++开发的函数库Library 和虚拟机Virtual Machine。最上层是各种由不同公司开发的软件。

2.2.1 Android体系构架

【引用】在Android SDK中,定义了让开发者使用与核心应用程序相同API 的权限。但要被应用程序架构的安全机制限制,使用者以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成,包含有: 内容提供者、资源管理器、通知管理器、活动管理器、视窗管理器、位置管理器、电话管理器、包管管理器。具体的框架如图2-2所示:

图2-2:Android 架构的五个部分

第2章 相关技术介绍

10 一些C/C++的类库被Android 使用,使用这些类库的组件各不相同。这些功能可以通过应用程序框架被开发者使用。包含以下核心类库: surface Manager 、 3Dlibraries: SGL、Media Frame work、Free Type、SSL 、SQLite:SQLite、web Kit、lib c。

虽然Android 开发、撰写应用程序是利用Java 语言,但不使用Java 相应的组件来运行程序,而是利用Google 开发的Android 组件运行。核心类库和Dalvik 虚拟机是Android 运行时的两个重要的部分。

2.2.2 Android系统核心

一个应用程序可以利用其它应用程序的元素是Android 的主要特点。

应用程序发出请求的时候,不管它请求的是哪个部分,系统都应该能启动这些进程而且要把它的Java 对象实例化。Android 应用程序的入口点可能不止一个。实例化和运行所需要活动、服务、 广播接收者、内容提供者这四种组件。如图2-3所示:

图2-3:实例化和运行所需组件

不是所有的应用程序都一定需要这四种组件,可能只有一个或者几个组成。确定了要用什么组件的话,就应该把所需要的组件列在AndroidManifest.xml 文件中,在这个文件中你可以声明应用程序组件以及它们的特性和要求。

2.3 人工智能

人工智能是一种新的技术科学,是计算机科学的一个分支。它能产生出模拟人类智能的反应,根据不同算法把各种人类模拟完善。

第2章 相关技术介绍

11 在人工智能方面,一般有极大极小树、剪枝、深度优先搜索这三种方法。 目前绝大部分的博弈类游戏中的人工算法都采用极大极小树这种方法。假设己方为 MAX 点,对方则为 MIN 点。如果当层的节点为奇数时那么就为 MAX 层,同样 为偶数时就为 MIN 层。当在 MAX 层时,该层的值就应该为下一个 MIN 层中的 最大一个的值。当在 MIN 层是,该层的值就应该为它子层 MAX 的最小的一个。

深度优先搜索与广度优先搜索的区别在于下一个节点的选择。DFS 先选择好节点,如果下个节点不存在或者都已经遍历过了,就向上返回到上一个节点,在遍其他的未被访问过的点。很容易想到这要用到堆栈 结构,使用一个递归来实现。而 BFS 则是逐个的遍历它的联接接点,将已经访 问过的点放入队列中。然后再依次取出继续这个过程。

不必要的节点可以被Alpha---Beta 剪枝去除,并且去除了这些节点也不会影响结果。

第3章 系统设计

12 第3章 系统设计

3.1 总体设计

该设计是Android 平台下的五子棋游戏。本游戏略过了欢迎界面直接进入程序主界面。系统的总体设计模型如图3-1所示:

图3-1 :总体设计模型

该游戏又分为以下几个模块:初始化模块、主控制模块、人工智能模块、落子模块 、胜负判断模块。

相应的数据流动如图3-2所示:

图3-2:系统主流程图

第3章 系统设计

13 3.2 模型建立

五子棋分黑白两种颜色,若那种颜色首先在横、竖、左斜、右斜这任意方向大于等于五个棋子,就胜利了。

所以,该游戏模型的重点就在于棋盘和棋子。流程如图3-3所示:

图3-3:模型建立流程

传统的五子棋的棋盘为15×15,我所绘制的棋盘不仅限于15×15,而是根据游戏界面的大小自动调整的。所以就必须设置棋盘上每个点的大小,从而计算出游戏界面上的横竖坐标。

首先画出棋盘的框架,再根据计算出的横竖坐标,产生棋盘上所有的线,这样棋盘模型就建立好了。

棋子就应该利用方法与设置好的点对应,通过对点的属性修改载入相应的棋子模型,棋子模型就建立好了。

3.3 控制模块设计

控制模块分为主控制模块、胜负判断模块、落子模块中的处理分析部分。控制模块如图3-4所示:

第3章 系统设计

14

图3-4:控制模块设计

主控制模块被用来转换下棋的顺序,当下棋顺序到了某一方的时候,把整个数据和流程转到响对应的模块里。

胜负判断模块将根据预先设定的规则,判断游戏胜负。

玩家与电脑落子模块中的处理分析部分是把用户点击界面的事件接收后进行处理分析。

3.4 显示模块设计

游戏界面初始化模块、落子模块中的接收点功能与显示棋子功能都属于显示模块。显示模块设计如图3-5所示:

图3-5:显示模块设计

运行游戏用户直接进入主界面,初始化模块运行,用户将看到主界面上的棋盘与选择游戏模式的提示窗口。用户选择游戏模式后,提示框将消失,游戏

第3章 系统设计

15 开始。

落子模块接受用户的触摸,在棋盘上对应的位置显示出棋子。游戏胜利后再弹出提示窗口说明胜负,并提示如何继续进行游戏。

3.5 人工智能设计

本游戏的人工智能是根据五子棋下法的特点从而计算出最佳的落子位置,或防守或进攻,从而达到胜利的目的。

人工智能总体的流程是:人机对战游戏开始,轮到手机落子的时候先计算搜索范围,清空上一轮搜索结果。进行第一次搜索,扫描所有空白点是否在搜索范围内,判断是否可能连成五子,是否为活1、半活2,抛弃该点是否有一方即将胜利。接着进行第二次搜索,在即将胜利位置落子,不再往下分析。判断是否有一方可以制造出活4是否整理出可以制造活3,半活4等棋型的位置,在制造活4处落子,不再往下分析。最后进行第三次搜索,找出最佳落子位置落子。将在第4章的人工智能详细介绍里给出人工智能计算的流程图。

第4章 系统实现

16 第4章 系统实现

4.1 细化的设计描述

启动游戏后直接进入主界面,在主界面上有提示窗口选择游戏模式。选择游戏模式是根据手机键盘的方向键设定的。游戏主界面的类图如图4-1所示:

图4-1:游戏主界面类图

Chessboard 继承自IChessboard ,在IChessboard 中定义了三种方法分别是:取得棋盘最大纵坐标,取得棋盘最大横坐标,取得当前所有空白点。有了取得棋盘最大横纵坐标的方法,才可以计算出棋子的位置。而有了取得当前所有空白点的方法,棋盘上的这些点才可以下。

第4章 系统实现

17 4.1.1 游戏初始化模块

在游戏初始化模块中,定义所有需要用到的函数和方法,使整个主界面得以运行。初始化模块又分为显示模块初始化、控制模块初始化、数据模块初始化。

显示模块初始化

● 创建画笔对象

● 创建用于提示输赢的文本控件

● 建立不同颜色的Bitmap 数组,使颜色为黑、白两种颜色

● 初始化好黑、白两种颜色的点

● 定义所有未下的空白点

数据模块初始化

● 设置点的大小

● 定义屏幕右下角的坐标值,即最大坐标值

● 初始横线和竖线的数目

控制模块初始化

● 定义可开局状态

● 定义已开局状态

● 定义已结束状态并且输出胜负。

● 把当前状态默认为可开局状态

● 初始化空白点集合

● 创建玩家一并且默认为人类玩家

● 玩家二根据选择的游戏模式进行初始化,若是电脑玩家调用Ai 接口,

若是人类玩家则再定义一个人类玩家

● 创建方法强制使面板元素接收焦点

第4章 系统实现

18 4.1.2 主控制模块

主控制模块被用来转换下棋的顺序,当下棋顺序到了某一方的时候,把整个数据和流程转到响对应的模块里。

利用whoRun 来设置玩家下棋的状态。whoRun = 1时玩家一下棋,whoRun = 2时玩家二下棋。

首先判断玩家是否取得胜利,如果胜利则直接输出结果,若没有胜利就轮到对手下棋。部分伪代码如下:

if (玩家一没有胜利){

if (玩家二是电脑){

发送电脑下棋信息,并且10毫秒后才给玩家2下棋

}else {

玩家二下棋;

}

}else {

输出玩家一胜利; }

首先判断玩家一是否胜利,若没胜利则可以落子。在玩家二落子之前先判断是否是电脑落子,如果是电脑落子则根据接收到的触摸信息进行落子(在落子模块中再详细介绍)否则玩家二落子,而如果玩家一赢了则不再下棋跳到已结束状态并输出胜负结果。

将流程转移到玩家一落子与上述方法基本相同,先判断玩家二是否胜利,若没胜利则玩家一落子,否则不再下棋跳到已结束状态并输出胜负结果。部分代码如下:

if (玩家二没有胜利){

玩家一下棋;

}else { 输出玩家二胜利;

}

第4章 系统实现

19 4.1.3 落子模块

在初始化模块中已经设置好点的大小和模型,在落子模块中就要把玩家或者电脑所要下的棋子显示在游戏界面中。

人类玩家落子首先根据触摸点找到棋盘上对应的点,接着再判断这个触摸点是否可以下棋,若可以下棋则正在下棋状态,该状态下不可以再响应其它触摸事件,进入正在下棋状态后利用IPlayer 接口里的run 方法把棋子数据放入可下棋的触摸点位置,最后刷新一下棋盘,棋子就显示在棋盘上对应的位置了。部分伪代码如下:

private void player1Run(MotionEvent event){

Point point = newPoint(event.getX(), event.getY());

if (该点为空白点且可落子){

设置为正在下棋状态; //这期间一定不可以再响应触摸事件

玩家一下棋;

刷新棋盘; }

}

而电脑落子首先判断是否是电脑落子,如果是电脑则利用继承自Handler 的方法发消息触发handleMessage 函数,而在电脑接收到触发消息后,根据人工智能计算出的最佳位置电脑走一步棋子,接着刷新一下棋盘,电脑要下的棋子就显示在棋盘上了。部分伪代码如下:

public void computerRunAfter(long delayMillis) {

this .removeMessages(0);

发消息触发handleMessage 函数;

}

public void handleMessage(Message msg) {

玩家二下棋;

刷新棋盘;

};

在刷新棋盘的时候都需要触发onDarw 方法,onDarw 就是把玩家或者电脑下的棋子显示出来的方法,把玩家一和玩家二的棋子利用canvas 方法把对应棋子图片放入棋盘,并把上一次下的棋子和新下的棋子区分开。

第4章 系统实现

20 4.1.4 胜负判断模块

BasePlayer 实现IPlayer 这个接口,重写了hasWin()、setChessboard()、List<Point> getMyPoints()这三个方法。

hasWin()就是判断判断胜负的方法,即总体设计中的判断胜负模块。

首先定义我已下的棋子protected List<Point> myPoints = new ArrayList<Point>(200);

再创建一个boolean 类型的函数,判断在横、竖、左斜、右斜四个方向的棋子个数是否大于等于五,若棋子个数大于等于五则胜利。判断胜负流程如图4-2所示:

图4-2:判断胜负

4.2 人工智能算法

把算法分为三次搜索。第一次搜索把玩家第一步棋的边界加1,前提是初始化搜索范围。接着遍历双方棋子,若棋子在搜索范围内,则不作改变。若棋子不在搜索范围之内,就需要修改搜索范围使之在搜索范围内。

把黑白双方的第一次搜索结果分开分析可以缩短搜索时间。第二次分析,主要是是分析第一次搜索的结果,第一次搜索结果会把一步棋在各个方向的结果生成相应对象,通过第二次搜索就将这些生成的对象合成一个对象。

如果进行到第三次测试,说明双方都没有可进攻的活4或者双活4。首先

第4章 系统实现

21 进行防守判断,若人类玩家的棋局不会对电脑造成威胁,判断顺序是玩家是否有活4,玩家是否有双活3,玩家是否有冲4,玩家是否有冲双活3,若不需要防守就进攻,先找电脑能否制造活4,没有就找双活3,没有双活3就找冲4,没有冲4就找单活3,没有的话就只能找活2了。最后选择最优位置下棋。

人工智能的流程如图4-3所示:

图4-3:人工智能流程

第4章 系统实现

22 4.3 实现效果

运行程序直接进入游戏主界面,游戏主界面如图4-4所示:

图4-4:游戏主界面

进入游戏主界面后可以根据提示窗口进行游戏模式的选择。游戏结束后的效果如图4-5所示:

图4-5:游戏结束效果

从图4-5可以看出,当黑色或者白色棋子在横向或者斜向连成大于等于5个棋子的时候,连成的那一方就胜利。并且游戏界面的边界都得以限制,不会出现数据溢出现象。

23 第5章 总结与展望

在本次游戏的设计中,将游戏设计成人人对战和人机对战两种模式。采用监听按键方法快速进入游戏。在设计过程中存在着不足,如没有进入游戏的按键界面,没有悔棋的按键,电脑的难易度无法控制。人工智能方面也存在缺陷,在电脑的落子只是考虑当前棋局,而没有考虑到落子之后对整个棋局的影响。这就涉及到极大值极小值问题,如果在人工智能中把极大值极小值考虑进去,就可以根据人工智能设计的程度而把人机对战分成不同的难易程度,使用户有更好的游戏体验。在以后的学习和提高中会努力学习更多知识从而完善这些功能。

在游戏界面的美化,棋盘中悔棋、难易程度的选择、重新开始游戏等各种功能的实现还需进一步加强,使玩家得到更好的游戏环境和用户体验。

随着3G 智能手机的普及,人们对游戏的要求会越来越高。仅仅只是人机对战不足以满足用户的需求,网络对战才是今后游戏发展的目标。用户之间接收和发送信息,使五子棋游戏不仅仅局限于一台手机上。

24 参考文献

[1] 张孝祥. Java就业培训教程[M]. 北京:清华大学出版社,2003

[2] 朱福喜编著.Java 语言习题与解析[M].北京:清华大学出版社,2006

[3] 吴其庆编著.Java 程序设计实例教程[M].北京:冶金工业出版社,2006

[4] E2ECloud工作室 著 深入浅出Google Android[M]. 北京:人民邮电出版社

[5] (美)Bruce Eckel. Java编程思想[M]. 陈昊鹏译. 北京:机械工业出版社,2007

[6] 叶核亚,陈立著.Java2程序设计实用教程[M].北京:电子工业出版社,2003.5

[7] 王克宏 著.Java 技术教程(基础篇)[M].北京:高等教育出版社,2002.04

[8] 孔令德. 毕业设计案例教程—从系统开发到论文写作[M].北京:国防工业出版社,2007.

[9] 雍俊海编著.Java 程序设计习题集[M].北京:清华大学出版社,2006

[10] 赵毅主编. 跨平台程序设计语言——Java[M].西安:西安电子科技大学出版社,2006

[11] 孙燕 主编.Java2入门与实例教程[M].北京:中国铁道出版社,2003.01

[12] 赵文靖编著.Java 程序设计基础与上机指导[M].北京:清华大学出版社,2006

[13] 柯温钊 著.JA V A 例解教程[M].北京:中国铁道出版社,2001.03

[14] 都志辉 著.Java3D 编程实践[M]. 北京:清华大学出版社,2002.11

[15] (美) 威尔顿,麦可匹克. JavaScript入门经典(第3版). 施宏斌译. 北京:清华大学出版社,2009

[16] Eric J.Braucle等. 软件设计—从程序设计到体系结构[M].李仁发等译. 北京:电子工业出版社,2007.

致谢

致 谢

在此论文完成之际,感谢我的指导老师刘嘉欣。

每次在遇到困难的时候,我得到了指导老师的帮助,使我明确了目标与设计方向,各种难题得到解决。这次的设计使我了解到自己的兴趣所向,今后的奋斗目标得到明确,我将继续努力学习,在今后的生活和工作中更好的发挥自己的优势,学好自己选择的这项专业技术,让自己在这条路上的明天会更好。

刘嘉欣老师对我的毕业设计予以悉心的指导,对我的毕业设计提出了很多建议,并细心授予写论文的心得,多次提醒注意事项,耐心的指导使我做的更完善。在此对刘嘉欣老师致以衷心的感谢。

南开大学滨海学院

本 科 生 毕 业 设 计

中文题目:基于Android 系统的手机游戏设计与实现

外文题目:The Design and Implementation of

学 号: 09990039_ _

姓 名: 陈 世 易 _____

年 级: 2009 级 _

系 别: 计算机科学系

专 业:

(数字媒体技术与应用方向)

完成日期: 2013年3月20日 __

指导教师: __ __ _刘嘉欣__________

南开大学滨海学院本科毕业论文(设计)诚信声明

本人郑重声明:所呈交的毕业论文(设计),题目《基于Android 的手机游戏》 是本人在指导教师的指导下,独立进行研究工作所取得的成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明。除此之外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明的法律结果。

毕业论文(设计)作者签名:陈世易

日期: 2013年3月20日

摘 要

I 基于Android 系统的手机游戏设计与实现

摘 要

在现代手机应用中,Android 智能手机在中国的占有率为86%,Android 系统在中国手机市场上扮演着重要的角色。因此,各种针对Android 系统的小程序和小游戏层出不穷,为Android 手机用户提供大量的便捷与娱乐。

本文围绕“基于Android 系统的手机游戏”实现五子棋游戏的人人对战和人机对战程序的设计和应用系统的开发课题为背景,介绍了Android 平台上以Java 为语言编写游戏的过程。本程序主要实现了五子棋的人机对战和人人对战。并程根据五子棋特定下法设计了一套简单的人工智能,设计出一个个简单的Android 五子棋小游戏。

关键词:Android Java 人工智能 手机游戏

Abstract

II The mobile phone game based on Android system

Abstract In the modern mobile phone applications, Android intelligent mobile phone in China 's share of 86%, Android system plays an important role in the Chinese mobile phone market. Therefore, a variety of Android system for small programs and games emerge in an endless stream, provide a lot of convenience and entertainment for the Android mobile phone users.

This paper on the "Android system mobile phone game" implementation of Gobang game for all the battle program design and application system development project as the background based on man-machine war and, on the platform of Android is introduced to Java for the process to prepare the game language. This procedure is mainly realized gobang man-machine war and all war. According to the specific method and process of Gobang design a set of simple artificial intelligence, design a simple Android backgammon game.

Keywords: Android Java Atificial intelligenc mobile game

目 录

III 目 录

摘 要 . ........................................................................................................ I ABSTRACT . .............................................................................................. II

第1章 绪论 . ............................................................................................ 5

1.1 背景 ................................................................................................................ 5

1.2 提出问题 ........................................................................................................ 5

1.3 本文组织结构 .............................................................................................. 6

第2章 相关技术介绍 ............................................................................ 7

2.1 J AVA . ................................................................................................................. 7

2.1.1 Java介绍 . ........................................................................................................... 7

2.1.2 Java VS C++ . ...................................................................................................... 7

2.1.3 开发工具 . ............................................................................................................ 7

2.2 A NDROID 平台 ................................................................................................ 8

2.2.1 Android体系构架 . ............................................................................................. 9

2.2.2 Android系统核心 . ........................................................................................... 10

2.3 人工智能 ...................................................................................................... 10

第3章 系统设计................................................................................... 12

3.1 总体设计 ...................................................................................................... 12

3.2 模型建立 ...................................................................................................... 13

3.3 控制模块设计 .............................................................................................. 13

3.4 显示模块设计 .............................................................................................. 14

3.5 人工智能设计 .............................................................................................. 15

第4章 系统实现................................................................................... 16

4.1 细化的设计描述 .......................................................................................... 16

4.1.1 游戏初始化模块 . .............................................................................................. 17

4.1.2 主控制模块 . ...................................................................................................... 18

4.1.3 落子模块 . .......................................................................................................... 19

目 录

IV 4.1.4 胜负判断模块 . .................................................................................................. 20

4.2 人工智能算法 .............................................................................................. 20

4.3 实现效果 ...................................................................................................... 22

第5章 总结与展望 .............................................................................. 23

参考文献 . .................................................................................................. 24

致 谢 . ...................................................................................................... 25

第1章 绪论

5 第1章 绪论

1.1 背景

智能手机有Symbian 、Windows Phone、Android 、IOS 、BlackBerry 10这些系统。Android 系统鹤立鸡群占据着巨大的市场份额,随着人们接触的手机时间越来越长,针对Android 系统的程序和游戏层出不穷。每个手机都有手机游戏,是人们闲暇时间的一种娱乐方式,而因为Android 的巨大市场份额,Android 平台下的手机游戏更是受到青睐。手机游戏不仅操作方便,还能开发思维,让用户在休闲的同时拓展了思维增长了见识。

手机的小巧便捷,方便的特性成为我们日常生活中必备通讯工具。拥有巨大市场空间的手机平台游戏会着智能手机的普及和应用必然会迎来新一轮的热潮。在新一轮的热潮中,Android 手机客户量大,所以手机小游戏的发展空间很可观。

1.2 提出问题

五子棋对思维和协调能力有益,能使我们集中精力,对于事务的耐心也得到了提高,培养我们的逻辑思维能力,对智力以及记忆都很有帮助。本文围绕着五子棋小游戏展开Java 和Android 的相关技术介绍,并把整个Android 平台下五子棋的设计展示出来。

把整个五子棋设计分为初始化模块、主控制模块、落子模块、胜负判断模块和人工智能模块。各个模块分工不同,把整个小游戏完善起来。设计的重点是人工智能模块,进而实现人机对战。设计中的人工智能是利用遍历的方法进行三次搜索,综合考虑当前局势从中选出最佳位置下棋,但不足之处是没有考虑到极大值极小值问题。

开始游戏就直接进入主界,主界面用了一个TextView 来说明怎样来进行游戏,根据用户触发相应的操作开始不同的对战方式。在游戏中,用画线来布满整个的手机屏幕,并且设定各个线相交的可触摸点和处理分析用户的触摸从而实现落子。在结束后用TextView 来进行了文字的说明和提示。

第1章 绪论

6 本文的主要目的是实现Android 平台下的五子棋,使我对Android 有更好的应用水平和为以后的软件设计道路打下坚实的基础。

1.3 本文组织结构

本文是以Android 平台下的五子棋游戏设计为核心,总共划分为五章。第一章是整篇论文的概述,大致说明智能手机、手机游戏、五子棋小游戏的相关背景,以及设计中各个模块的需求。第二章对编程用的语言平台进行相关的技术介绍。在第三章中对整个游戏进行总体设计说明各个模块的设计方向。第四章把每个模块的功能具体化,提供对应的流程图或者伪代码。在论文的结尾进行总结。

第2章 相关技术介绍

7 第2章 相关技术介绍

2.1 Java

现今计算机编程语言种类繁多,例如C++、VB 、BASIC 、PASCAL 。而Android 利用的是Java 语言

2.1.1 Java介绍

Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC 、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。因为有了移动互联网全球化和云计算,Java 有更好的优势和前景。

Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

Java 平台有JavaEE 、Java SE、Java ME这三种版本。

2.1.2 Java VS C++

Java 设计的本意是要简化C++,但它在嵌入式系统中的成功C++无法比拟,它具有强大的网络功能使得它在网络编程和嵌入式系统中独占鳌头。

C++运行效率高,可以对具体的平台进行优化;Java 的开发效率高,移植性好。应该根据具体的应用要求,选择合适的开发工具。在执行效率高的应用面前,C++比较有优势。Java 的优势体现在更新换代快,使用人数多的应用软件上。

2.1.3 开发工具

现在常用的Java 项目开发环境有:JBuilder 、VisualAge for Java、Forte for Java, Visual Cafe 、Eclipse 、NetBeans IDE 、JCreator +J2SDK、JDK+记事本、EditPlus+ J2SDK等等。

现今Eclipse 应用广泛、功能强大,而且还可已按自己的需要下载各种插件

第2章 相关技术介绍

8 来扩展它的功能,所以本设计选用的工具是Eclipse 。 Eclipse 是一个开放源代码的、基于Java 的可扩展开发平台。Eclipse 是利用各种插件来建立开放环境从而提供框架和服务的。Eclipse 附带了一个标准的插件集,包括Java 开发工具JDK 。

被应用最多的Java SDK 就是JDK 了。Java 的运行环境、工具、基础类库都需要以JDK 为基础。

Eclipse 的开发环境如图2-1所示:

图2-1:Eclipse 的开发环境

2.2 Android 平台

手机与人们的生活息息相关,形形色色的手机充斥着全球的手机市场。各种手机平台竞争此起彼伏。市场上比较常见的手机平台有塞班、Windows Phone、IOS 、BlackBerry 10、Android 这五种。

塞班这个操作系统广泛应用与诺基亚手机,但由于缺乏创新,塞班面临着各种困境。

Windows Phone 是微软发布的一款手机操作系统,它将微软旗下的Xbox Live 游戏、Xbox Music音乐与独特的视频体验整合至手机中。

IOS 是由苹果公司开发的手持设备操作系统。IOS 操作系统简洁易上手,能不断给用户不同的用户体验。

第2章 相关技术介绍

9 BlackBerry 10,是黑莓公司的手机系统,只有黑莓手机利用这种系统,市场份额不大,但是有一批忠实的客户。

上述四种平台,不是发展时间短就是市场份额低,而Android 一枝独秀,它是Google 于2007年11月05日宣布的基于Linux 平台的开源移动操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

Android 的架构分底层、中层、上层三部分。底层只提供基本功能,利用C 语言开发的Linux 被当作基础;中间层的结构是由C++开发的函数库Library 和虚拟机Virtual Machine。最上层是各种由不同公司开发的软件。

2.2.1 Android体系构架

【引用】在Android SDK中,定义了让开发者使用与核心应用程序相同API 的权限。但要被应用程序架构的安全机制限制,使用者以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成,包含有: 内容提供者、资源管理器、通知管理器、活动管理器、视窗管理器、位置管理器、电话管理器、包管管理器。具体的框架如图2-2所示:

图2-2:Android 架构的五个部分

第2章 相关技术介绍

10 一些C/C++的类库被Android 使用,使用这些类库的组件各不相同。这些功能可以通过应用程序框架被开发者使用。包含以下核心类库: surface Manager 、 3Dlibraries: SGL、Media Frame work、Free Type、SSL 、SQLite:SQLite、web Kit、lib c。

虽然Android 开发、撰写应用程序是利用Java 语言,但不使用Java 相应的组件来运行程序,而是利用Google 开发的Android 组件运行。核心类库和Dalvik 虚拟机是Android 运行时的两个重要的部分。

2.2.2 Android系统核心

一个应用程序可以利用其它应用程序的元素是Android 的主要特点。

应用程序发出请求的时候,不管它请求的是哪个部分,系统都应该能启动这些进程而且要把它的Java 对象实例化。Android 应用程序的入口点可能不止一个。实例化和运行所需要活动、服务、 广播接收者、内容提供者这四种组件。如图2-3所示:

图2-3:实例化和运行所需组件

不是所有的应用程序都一定需要这四种组件,可能只有一个或者几个组成。确定了要用什么组件的话,就应该把所需要的组件列在AndroidManifest.xml 文件中,在这个文件中你可以声明应用程序组件以及它们的特性和要求。

2.3 人工智能

人工智能是一种新的技术科学,是计算机科学的一个分支。它能产生出模拟人类智能的反应,根据不同算法把各种人类模拟完善。

第2章 相关技术介绍

11 在人工智能方面,一般有极大极小树、剪枝、深度优先搜索这三种方法。 目前绝大部分的博弈类游戏中的人工算法都采用极大极小树这种方法。假设己方为 MAX 点,对方则为 MIN 点。如果当层的节点为奇数时那么就为 MAX 层,同样 为偶数时就为 MIN 层。当在 MAX 层时,该层的值就应该为下一个 MIN 层中的 最大一个的值。当在 MIN 层是,该层的值就应该为它子层 MAX 的最小的一个。

深度优先搜索与广度优先搜索的区别在于下一个节点的选择。DFS 先选择好节点,如果下个节点不存在或者都已经遍历过了,就向上返回到上一个节点,在遍其他的未被访问过的点。很容易想到这要用到堆栈 结构,使用一个递归来实现。而 BFS 则是逐个的遍历它的联接接点,将已经访 问过的点放入队列中。然后再依次取出继续这个过程。

不必要的节点可以被Alpha---Beta 剪枝去除,并且去除了这些节点也不会影响结果。

第3章 系统设计

12 第3章 系统设计

3.1 总体设计

该设计是Android 平台下的五子棋游戏。本游戏略过了欢迎界面直接进入程序主界面。系统的总体设计模型如图3-1所示:

图3-1 :总体设计模型

该游戏又分为以下几个模块:初始化模块、主控制模块、人工智能模块、落子模块 、胜负判断模块。

相应的数据流动如图3-2所示:

图3-2:系统主流程图

第3章 系统设计

13 3.2 模型建立

五子棋分黑白两种颜色,若那种颜色首先在横、竖、左斜、右斜这任意方向大于等于五个棋子,就胜利了。

所以,该游戏模型的重点就在于棋盘和棋子。流程如图3-3所示:

图3-3:模型建立流程

传统的五子棋的棋盘为15×15,我所绘制的棋盘不仅限于15×15,而是根据游戏界面的大小自动调整的。所以就必须设置棋盘上每个点的大小,从而计算出游戏界面上的横竖坐标。

首先画出棋盘的框架,再根据计算出的横竖坐标,产生棋盘上所有的线,这样棋盘模型就建立好了。

棋子就应该利用方法与设置好的点对应,通过对点的属性修改载入相应的棋子模型,棋子模型就建立好了。

3.3 控制模块设计

控制模块分为主控制模块、胜负判断模块、落子模块中的处理分析部分。控制模块如图3-4所示:

第3章 系统设计

14

图3-4:控制模块设计

主控制模块被用来转换下棋的顺序,当下棋顺序到了某一方的时候,把整个数据和流程转到响对应的模块里。

胜负判断模块将根据预先设定的规则,判断游戏胜负。

玩家与电脑落子模块中的处理分析部分是把用户点击界面的事件接收后进行处理分析。

3.4 显示模块设计

游戏界面初始化模块、落子模块中的接收点功能与显示棋子功能都属于显示模块。显示模块设计如图3-5所示:

图3-5:显示模块设计

运行游戏用户直接进入主界面,初始化模块运行,用户将看到主界面上的棋盘与选择游戏模式的提示窗口。用户选择游戏模式后,提示框将消失,游戏

第3章 系统设计

15 开始。

落子模块接受用户的触摸,在棋盘上对应的位置显示出棋子。游戏胜利后再弹出提示窗口说明胜负,并提示如何继续进行游戏。

3.5 人工智能设计

本游戏的人工智能是根据五子棋下法的特点从而计算出最佳的落子位置,或防守或进攻,从而达到胜利的目的。

人工智能总体的流程是:人机对战游戏开始,轮到手机落子的时候先计算搜索范围,清空上一轮搜索结果。进行第一次搜索,扫描所有空白点是否在搜索范围内,判断是否可能连成五子,是否为活1、半活2,抛弃该点是否有一方即将胜利。接着进行第二次搜索,在即将胜利位置落子,不再往下分析。判断是否有一方可以制造出活4是否整理出可以制造活3,半活4等棋型的位置,在制造活4处落子,不再往下分析。最后进行第三次搜索,找出最佳落子位置落子。将在第4章的人工智能详细介绍里给出人工智能计算的流程图。

第4章 系统实现

16 第4章 系统实现

4.1 细化的设计描述

启动游戏后直接进入主界面,在主界面上有提示窗口选择游戏模式。选择游戏模式是根据手机键盘的方向键设定的。游戏主界面的类图如图4-1所示:

图4-1:游戏主界面类图

Chessboard 继承自IChessboard ,在IChessboard 中定义了三种方法分别是:取得棋盘最大纵坐标,取得棋盘最大横坐标,取得当前所有空白点。有了取得棋盘最大横纵坐标的方法,才可以计算出棋子的位置。而有了取得当前所有空白点的方法,棋盘上的这些点才可以下。

第4章 系统实现

17 4.1.1 游戏初始化模块

在游戏初始化模块中,定义所有需要用到的函数和方法,使整个主界面得以运行。初始化模块又分为显示模块初始化、控制模块初始化、数据模块初始化。

显示模块初始化

● 创建画笔对象

● 创建用于提示输赢的文本控件

● 建立不同颜色的Bitmap 数组,使颜色为黑、白两种颜色

● 初始化好黑、白两种颜色的点

● 定义所有未下的空白点

数据模块初始化

● 设置点的大小

● 定义屏幕右下角的坐标值,即最大坐标值

● 初始横线和竖线的数目

控制模块初始化

● 定义可开局状态

● 定义已开局状态

● 定义已结束状态并且输出胜负。

● 把当前状态默认为可开局状态

● 初始化空白点集合

● 创建玩家一并且默认为人类玩家

● 玩家二根据选择的游戏模式进行初始化,若是电脑玩家调用Ai 接口,

若是人类玩家则再定义一个人类玩家

● 创建方法强制使面板元素接收焦点

第4章 系统实现

18 4.1.2 主控制模块

主控制模块被用来转换下棋的顺序,当下棋顺序到了某一方的时候,把整个数据和流程转到响对应的模块里。

利用whoRun 来设置玩家下棋的状态。whoRun = 1时玩家一下棋,whoRun = 2时玩家二下棋。

首先判断玩家是否取得胜利,如果胜利则直接输出结果,若没有胜利就轮到对手下棋。部分伪代码如下:

if (玩家一没有胜利){

if (玩家二是电脑){

发送电脑下棋信息,并且10毫秒后才给玩家2下棋

}else {

玩家二下棋;

}

}else {

输出玩家一胜利; }

首先判断玩家一是否胜利,若没胜利则可以落子。在玩家二落子之前先判断是否是电脑落子,如果是电脑落子则根据接收到的触摸信息进行落子(在落子模块中再详细介绍)否则玩家二落子,而如果玩家一赢了则不再下棋跳到已结束状态并输出胜负结果。

将流程转移到玩家一落子与上述方法基本相同,先判断玩家二是否胜利,若没胜利则玩家一落子,否则不再下棋跳到已结束状态并输出胜负结果。部分代码如下:

if (玩家二没有胜利){

玩家一下棋;

}else { 输出玩家二胜利;

}

第4章 系统实现

19 4.1.3 落子模块

在初始化模块中已经设置好点的大小和模型,在落子模块中就要把玩家或者电脑所要下的棋子显示在游戏界面中。

人类玩家落子首先根据触摸点找到棋盘上对应的点,接着再判断这个触摸点是否可以下棋,若可以下棋则正在下棋状态,该状态下不可以再响应其它触摸事件,进入正在下棋状态后利用IPlayer 接口里的run 方法把棋子数据放入可下棋的触摸点位置,最后刷新一下棋盘,棋子就显示在棋盘上对应的位置了。部分伪代码如下:

private void player1Run(MotionEvent event){

Point point = newPoint(event.getX(), event.getY());

if (该点为空白点且可落子){

设置为正在下棋状态; //这期间一定不可以再响应触摸事件

玩家一下棋;

刷新棋盘; }

}

而电脑落子首先判断是否是电脑落子,如果是电脑则利用继承自Handler 的方法发消息触发handleMessage 函数,而在电脑接收到触发消息后,根据人工智能计算出的最佳位置电脑走一步棋子,接着刷新一下棋盘,电脑要下的棋子就显示在棋盘上了。部分伪代码如下:

public void computerRunAfter(long delayMillis) {

this .removeMessages(0);

发消息触发handleMessage 函数;

}

public void handleMessage(Message msg) {

玩家二下棋;

刷新棋盘;

};

在刷新棋盘的时候都需要触发onDarw 方法,onDarw 就是把玩家或者电脑下的棋子显示出来的方法,把玩家一和玩家二的棋子利用canvas 方法把对应棋子图片放入棋盘,并把上一次下的棋子和新下的棋子区分开。

第4章 系统实现

20 4.1.4 胜负判断模块

BasePlayer 实现IPlayer 这个接口,重写了hasWin()、setChessboard()、List<Point> getMyPoints()这三个方法。

hasWin()就是判断判断胜负的方法,即总体设计中的判断胜负模块。

首先定义我已下的棋子protected List<Point> myPoints = new ArrayList<Point>(200);

再创建一个boolean 类型的函数,判断在横、竖、左斜、右斜四个方向的棋子个数是否大于等于五,若棋子个数大于等于五则胜利。判断胜负流程如图4-2所示:

图4-2:判断胜负

4.2 人工智能算法

把算法分为三次搜索。第一次搜索把玩家第一步棋的边界加1,前提是初始化搜索范围。接着遍历双方棋子,若棋子在搜索范围内,则不作改变。若棋子不在搜索范围之内,就需要修改搜索范围使之在搜索范围内。

把黑白双方的第一次搜索结果分开分析可以缩短搜索时间。第二次分析,主要是是分析第一次搜索的结果,第一次搜索结果会把一步棋在各个方向的结果生成相应对象,通过第二次搜索就将这些生成的对象合成一个对象。

如果进行到第三次测试,说明双方都没有可进攻的活4或者双活4。首先

第4章 系统实现

21 进行防守判断,若人类玩家的棋局不会对电脑造成威胁,判断顺序是玩家是否有活4,玩家是否有双活3,玩家是否有冲4,玩家是否有冲双活3,若不需要防守就进攻,先找电脑能否制造活4,没有就找双活3,没有双活3就找冲4,没有冲4就找单活3,没有的话就只能找活2了。最后选择最优位置下棋。

人工智能的流程如图4-3所示:

图4-3:人工智能流程

第4章 系统实现

22 4.3 实现效果

运行程序直接进入游戏主界面,游戏主界面如图4-4所示:

图4-4:游戏主界面

进入游戏主界面后可以根据提示窗口进行游戏模式的选择。游戏结束后的效果如图4-5所示:

图4-5:游戏结束效果

从图4-5可以看出,当黑色或者白色棋子在横向或者斜向连成大于等于5个棋子的时候,连成的那一方就胜利。并且游戏界面的边界都得以限制,不会出现数据溢出现象。

23 第5章 总结与展望

在本次游戏的设计中,将游戏设计成人人对战和人机对战两种模式。采用监听按键方法快速进入游戏。在设计过程中存在着不足,如没有进入游戏的按键界面,没有悔棋的按键,电脑的难易度无法控制。人工智能方面也存在缺陷,在电脑的落子只是考虑当前棋局,而没有考虑到落子之后对整个棋局的影响。这就涉及到极大值极小值问题,如果在人工智能中把极大值极小值考虑进去,就可以根据人工智能设计的程度而把人机对战分成不同的难易程度,使用户有更好的游戏体验。在以后的学习和提高中会努力学习更多知识从而完善这些功能。

在游戏界面的美化,棋盘中悔棋、难易程度的选择、重新开始游戏等各种功能的实现还需进一步加强,使玩家得到更好的游戏环境和用户体验。

随着3G 智能手机的普及,人们对游戏的要求会越来越高。仅仅只是人机对战不足以满足用户的需求,网络对战才是今后游戏发展的目标。用户之间接收和发送信息,使五子棋游戏不仅仅局限于一台手机上。

24 参考文献

[1] 张孝祥. Java就业培训教程[M]. 北京:清华大学出版社,2003

[2] 朱福喜编著.Java 语言习题与解析[M].北京:清华大学出版社,2006

[3] 吴其庆编著.Java 程序设计实例教程[M].北京:冶金工业出版社,2006

[4] E2ECloud工作室 著 深入浅出Google Android[M]. 北京:人民邮电出版社

[5] (美)Bruce Eckel. Java编程思想[M]. 陈昊鹏译. 北京:机械工业出版社,2007

[6] 叶核亚,陈立著.Java2程序设计实用教程[M].北京:电子工业出版社,2003.5

[7] 王克宏 著.Java 技术教程(基础篇)[M].北京:高等教育出版社,2002.04

[8] 孔令德. 毕业设计案例教程—从系统开发到论文写作[M].北京:国防工业出版社,2007.

[9] 雍俊海编著.Java 程序设计习题集[M].北京:清华大学出版社,2006

[10] 赵毅主编. 跨平台程序设计语言——Java[M].西安:西安电子科技大学出版社,2006

[11] 孙燕 主编.Java2入门与实例教程[M].北京:中国铁道出版社,2003.01

[12] 赵文靖编著.Java 程序设计基础与上机指导[M].北京:清华大学出版社,2006

[13] 柯温钊 著.JA V A 例解教程[M].北京:中国铁道出版社,2001.03

[14] 都志辉 著.Java3D 编程实践[M]. 北京:清华大学出版社,2002.11

[15] (美) 威尔顿,麦可匹克. JavaScript入门经典(第3版). 施宏斌译. 北京:清华大学出版社,2009

[16] Eric J.Braucle等. 软件设计—从程序设计到体系结构[M].李仁发等译. 北京:电子工业出版社,2007.

致谢

致 谢

在此论文完成之际,感谢我的指导老师刘嘉欣。

每次在遇到困难的时候,我得到了指导老师的帮助,使我明确了目标与设计方向,各种难题得到解决。这次的设计使我了解到自己的兴趣所向,今后的奋斗目标得到明确,我将继续努力学习,在今后的生活和工作中更好的发挥自己的优势,学好自己选择的这项专业技术,让自己在这条路上的明天会更好。

刘嘉欣老师对我的毕业设计予以悉心的指导,对我的毕业设计提出了很多建议,并细心授予写论文的心得,多次提醒注意事项,耐心的指导使我做的更完善。在此对刘嘉欣老师致以衷心的感谢。


相关作文

  • iOS开发人才物以稀为贵作文400字
  • 经过2013到现在Android 招聘的疯狂,现在Android 的程序员渐渐多起来了不再是物以稀为贵了,很多原来Java 的程序员很轻松的就转向了 Android的开发,使得android 人才很快得到满足,但是iOS 开发呢? iOS 开发成本比较高,首先需要一台Mac 电脑,如果需要真机调试, ...

  • 我的日记设计文档作文16100字
  • 我的日记设计文档 项目名称:mydiary2 程序目录: 一.最终效果图 二.实现功能 1. 实现保存密码的功能 具体代码: sp =getSharedPreferences("userinfo" ,Context. MODE_PRIVATE); name .setText(sp ...

  • 揭秘Android 4.2的天堂与地狱作文2100字
  • 揭秘Android 4.2 开发者的天堂与地狱 Andorid 问世已有五年时间,从第一代操作系统发展到现在,各代操作系统的命名都很独特,从Andorid 1.5开始就以甜点命名,Android 4.2沿用Android 4.1的Jelly Bean一名,不一样的是功能的大幅提升. Photo Sp ...

  • 暑假点滴作文1300字
  • 人生路上,我们都在奔跑,总在赶超一些人,也总被一些人赶超.人生的要义,一是欣赏沿途的风景,二是抵达遥远的终点.人生的秘诀,寻找一种合适的速度,莫因疾驰而不堪重负,莫因迟缓而空耗生命.人生的快乐,走自己的路,看自己的景,超越他人不得意,他人超越不失志. 萨缪尔森 <经济分析基础>.< ...

  • 愤怒的小鸟的商业模式创新作文2500字
  • <愤怒的小鸟>的商业模式创新 <创新与创业>课程期末论文 罗亚琳 09300140034 创新与创业 罗亚琳 09300140034 2 <愤怒的小鸟>的商业模式创新 09300140034 罗亚琳 [案例背景] <愤怒的小鸟>是一款由一家芬兰的手机游 ...

  • DIY时光机设计文档作文9200字
  • DIY 时光机 设计文档 第一章 引言 .................................................................................................................................. ...

  • android密令创建emulator作文0字
  • 创建 emulator 启动 emulator 安装 apk 删除 apk

  • 雪狼团队作文900字
  • 雪狼团队 成立背景 多年前,那时的手机还是传统意义上的手机,"刷机"还是高端发烧友玩家才会接触到的词.如今却已是全民刷机的时代,那个功能机泛滥的时代已经过去.就算是小白也能通过刷机让自己的手机增加新实用功能和特性. 在Android 占有着超高市场份额的今天,ROM 已经不是什么 ...

  • 联通手机密令作文700字
  • 联通手机密令 业务名称:联通手机密令 使用范围:联通手机用户 适用终端:目前中国联通手机密令已推出ios .android 两个版本,即iphone 手机及安装android 操作系统的手机. 产品介绍:手机密令是安全工具的一种,是由中国联通和时代亿宝公司联合推出的一款采用动态口令技术的安全产品.该 ...

你可能喜欢
聚合