基于Android的五子棋游戏设计答辩_第1页
基于Android的五子棋游戏设计答辩_第2页
基于Android的五子棋游戏设计答辩_第3页
基于Android的五子棋游戏设计答辩_第4页
基于Android的五子棋游戏设计答辩_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、五子棋游戏的设计与实现,答 辩 人: 校内导师: 基地指导老师: 专业班级:,01,02,03,04,contents,研究背景概述,五子棋游戏概述,概要设计,详细设计,05,06,07,contents,人工智能算法,应用展示,自我总结,研究背景概述,2015年4月28日,全球移动互联网大会(gmic)在我国北京-国家会议中心开幕。期间,怀进鹏,也就是我国工业和信息化部副部长做了此次大会的开幕致辞。 致辞中提到,全球移动互联网的发展迅速,我国移动互联网在去年发布了4g网络以后,就一跃成为了全球的第二大智能电子电器的市场,在2015新的一年将有超过美国的趋势,成为世界上手机市场最为活跃的地方。

2、,android发展趋势,android平台是一种以linux操作系统为其应用的后台基础的面向大众的开放的源码操作系统,主要应用于便携设备。在2003年的时候,android股份有限公司在美国的加州初步成立,它在2005年的时候就被google公司所收购 有关的统计数据显示,距离android正式推出的两年时间里,android的操作系统发展神速,已经快速地超越了称霸全球手机市场十年的经典诺基亚的symbian塞班系统,一跃而上,成为全球最受应用消费者所欢迎的智能手机平台。,android平台的发展历史,从2009年5月份开始一直到现在,谷歌公司所正式发行的android操作系统版本就一直沿用

3、一些西式的小甜点、点心来作为各个版本的代号,这些版本是有一定的排列顺序的,这样,它就可以让大众更容易去区别不同的版本历史。 按照英文中的大写字母的排列顺序来对每一个版本进行不同的命名:纸杯蛋糕(cupcake)、甜甜圈(donut)、闪电泡芙(clair)、冻酸奶(froyo)、姜饼(gingerbread)、蜂巢(honeycomb)冰淇淋三明治(ice cream sandwich)、果冻豆(jelly bean)、奇巧(kitkat)、棒棒糖( lollipop),越往后,版本的首位大写字母在英文表中顺序越靠后。,五子棋游戏概述,五子棋,是一种棋牌类的游戏,需要有一定的策略。棋盘和围棋是

4、通用的,有黑色和白色棋子两种,但规则相对比较简单。在我国古代,是比较流行的棋术之一。 规则是,两个人在竞赛中,各拿一种颜色的棋子,轮流逐个落子,经过主动进攻或者是防守,直到有一方会出现五颗或者五颗以上的棋子连成一条线,就判定这一方获胜,游戏结束。 由于落子之后五子棋的棋子不像象棋和跳棋、军旗那些可以随意的移动位置,有时候人们为了就地取材休闲娱乐,也是可以用纸质的棋盘和笔来进行的。五子棋游戏的规则简单,很容易就可以上手的,老少皆宜。这样的游戏简单易玩,并且锻炼思维,对于小孩儿来说,是可以充当开发智力练习的工具的。,需求分析(1),五子棋游戏应用中主要实现的功能有以下这些: 游戏背景音乐的开关;

5、人机对战功能; 人人对战功能; 游戏说明功能; 关于版本介绍功能; 退出游戏功能。,需求分析(2),游戏界面主要实现的功能有: 自由选择ai智能级别功能; 重新开始游戏功能; 游戏进行中悔棋功能; 暂停游戏后返回主界面功能; 提示哪一方下棋功能; 判断游戏中双方的胜负功能。,总体设计,该游戏的总体设计模型有分为三大模块: 初始化模块; 控制模块:包括主控制模块、落子模块和判赢模块; 人工智能模块。,总体设计模块,主体设计模块之间的联系如下图所示:,总体设计数据流动图,其相应的数据流动如下图所示:,人机对战: 当用户点击应用图标进入主界面之后,选择人机对战按钮点击后进入人机对战界面。 在人机对战

6、中,默认黑色棋子先行,若玩家想要先手,则使用黑色棋子,若玩家想要后手,则使用白色棋子。 除此之外,人机对战中,玩家还设置有博弈的电脑对象ai的智能级别,有初级和中级两个级别,高级级别的ai智能尚在研发当中。 玩家不论在开始游戏还是游戏进行中更换先手后手、ai智能级别时,该游戏都会重置棋盘,自发重新开始游戏。 在游戏过程中,无论是玩家还是电脑,只要有一方所用的棋子有五颗以上连在一起,系统就会判定该方胜出。,人人对战: 当用户点击应用图标进入主界面之后,选择人人对战按钮点击后进入人人对战界面。 在人人对战中,默认黑色棋子先行,若玩家1想要先手,则使用黑色棋子,玩家2使用白色棋子;若玩家1想要后手,

7、则使用白色棋子 ,玩家2使用黑色棋子。 在游戏过程中,无论是玩家还是电脑,只要有一方所用的棋子有五颗以上连在一起,系统就会判定该方胜出。,规则与版本说明: 若用户点击应用图条进入主界面之后,需要了解该五子棋应用的游戏规则和应用升级版本情况时,就可以选择游戏规则按钮和有关版本按钮。 当用户点击的是游戏规则按钮时,界面跳转进入五子棋游戏的规则说明界面,该界面主要是通过textview控件编辑游戏规则说明展示给用户文案。如果用户阅读完毕,点击下面的确定按钮就可以退出游戏说明界面,返回主界面,选择开始对战的模式开始游戏。 当用户点击的是有关游戏版本的说明按钮时,该说明并没有进行界面的跳转,而是设置为弹

8、出dialog提示框,简单地告知用户有关该游戏现在的版本,同样,如果用户阅读完毕,可以在提示框的确定元素,系统就会自动关闭提示框回到主界面,用户可以继续选择对战模式开始游戏。,详细设计,将总体设计中的各个模块细化:,详细设计初始化模块,游戏的初始化模块 在游戏初始化模块中,需要声明和定义所有需要在游戏运行后使用到的各种函数和方法,使得整个主界面得以正常运行。 初始化模块又分为: 显示模块初始化; 控制模块初始化; 数据模块初始化。,显示模块初始化 定义画布的宽高变量; 定义画笔并初始化画笔的颜色和光滑度和滤镜效果; 定义提示输赢的文本控件(后期将改善为弹出对话框);,数据模块初始化: 定义获取

9、画布右下角的坐标值; 设置格子的宽度; 设置横线和竖线的数目; 设置点的直径; 定义黑、白两种颜色的点;,控制模块初始化 定义人机界面标记; 定义aiplayer的电脑玩家对象; 定义aiplayer电脑玩家等级标记; 定义并初始化下棋顺序的棋子颜色标记; 定义并初始化进入人机大战模式标记; 定义并初始化游戏结束标记; 定义并初始化判断输赢标记,包括人机对战中ai赢、玩家赢和人人对战中玩家一赢和玩家二赢;,定义并初始化判断和局; 定义并初始化判断游戏出现胜负标记; 定义并初始化悔棋标记,包括人机对战中ai悔棋标记和人人对战中悔棋标记;,详细设计控制模块,控制模块主要包括主控制模块、落子模块和胜

10、负判断模块,人工智能模块,在该五子棋游戏中,人工智能是指在人机对战模式下,计算机在与人类玩家对弈过程中,根据五子棋规则和特点,或防守或进攻,计算出最佳落子位置,用最优化的方法和路径,获得竞赛的胜利。 在本次设计中,综合棋牌类游戏的博弈算法理论,我实现人工智能的总体思想就是采用现在最通用的棋盘类游戏的博弈树的思想,具体部分再下面章节中详细讲解。,人工智能算法,五子棋博弈树的简介: 首先为大家上一张图,来简单形象地体会一下,什么是五子棋的博弈树,其实,这就是在我们本科期间数据结构书本中曾经见过的棋盘落子可能性分析的树形结构。,我们知道,人机对战的核心思想就是:我们需要一个算法,这个算法能够代替人对

11、战中两个玩家中的其中一个玩家,与人类玩家进行博弈,并决出胜负。 这个算法的框架是很显而易见的:,如上图中所表示的那样,ai算法的输入数据就是当前进行的五子棋博弈的局面,ai算法就是通过分析这个博弈局面来精确地计算并得出当前局面中aiplayer的最佳落子点并传值回棋盘类chessboard类中,进而完成与人类玩家的博弈。 ai算法的功能需求是很简洁明了的,但是,该算法的实现的难点就是在于:aiplayer如何对当前的博弈局面进行分析,它的最佳落子点的评价标准是什么? 答案:博弈树的搜索,对于本次五子棋游戏的设计,我们选用极大极小博弈树(mgt)是最合适的,这种博弈树可以用来形象地表示电脑玩家和

12、人类玩家一次落子进行博弈的过程。 上面图4-1的博弈树就是其中一个例子。该图很清晰得展示出了博弈过程中可能出现的所有的情况,当然,这张图是图的制作者去除掉落子等价位置而得出的博弈情况,如果我们让这个图继续延续下去,子树下面再进行情况分析,我们就相当于是穷举了博弈过程中所有可能出现的对弈情况。然后,我们可以这样猜想,如果我们已经预先知道了对弈过程中可能发生的所有的情况,并且,能够对这些情况根据某种评判法则,进行一定的评分,那么,我们就可以在最后得到的评判分数最好的点的位置落下aiplayer所执的棋子,这样,我们就可以实现电脑玩家与人类玩家的对弈过程,也就是ai算法。,应用展示,右图中为本次设计的欢迎界面,界面上有五个功能按钮。 在界面右上角有一个背景音乐switch按钮。 在标题栏右端菜单项里面有其他的一些设置。,我们可以看到,在菜单项中有: 主题背景的更换; 账户登录的设置; 帮助文档; 还有和主界面一样的退出游戏的按钮异曲同工的菜单项。,自我总结,这次五子棋游戏的毕业设计让我对android系统和平台有了更深入的了解,也接触到了以前没有接触到的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论