游戏设计毕业论文Word文档下载推荐.docx
- 文档编号:19741320
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:8
- 大小:23.77KB
游戏设计毕业论文Word文档下载推荐.docx
《游戏设计毕业论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《游戏设计毕业论文Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
1.1课题背景
五子棋是起源于中国古代的传统黑白棋种之一。
现代五子棋日文称之为连珠,英译为Renju,英文称只为Gobang或FIR(FiveinaRow的缩写),亦有连五子、五子连、串珠、五幕、五目碰等多种称谓。
五子棋起源于古代中国,发展在日本,风靡于欧洲。
对于它于围棋的关系有两种说法,一说早于围棋,早在“尧造围棋”之前,民间就已有五子棋游戏;
一说源于围棋,是围棋发展的一个分支。
在中国的文化里,倍受人们的青睐。
人世纪初五子棋传入欧洲并速度风靡全球。
通过一系列的变化,使五子棋这一简单的游戏复杂化、规模化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。
Java语言是当今最为流行的程序设计语言之一,作为一门非常优秀和极为健壮的编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用Java语言不仅可以开发出功能强大的大型应用程序,而且Java语言本身突出的跨平台的特性也使得它特别适合于Internet上的应用开发,可以这样说,Java的出现使得所开发的应用程序“一次编写,处处可用”的实现成为了可能。
1.2本课题研究的意义
近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。
越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易见。
自己对人工智能比较感兴趣,而五子棋游戏程序的开发实现了这个课题,正好提供给我这样一个研究的机会,通过对人工智能中博弈方面的研究(人机对弈),让我在简单的人机对弈全局设计,以及具体到相关算法上有了深入的了解。
人工智能大致可以分成几个任务,这时,这些学科之间的差别就变的很模糊。
人工智能在机器人学、模式识别、物景分析、数据库的智能检索、机器下棋(实际上是博弈论问题)和家用电气智能化等领域都有广泛的应用。
而这个课题就是和人工智能中博弈论领域紧密相关的。
这个题目核心是人工智能和Java编程。
并且人工智能中的博弈部分,由于采用了搜索算法,其中很多被利用到各方面。
它的概念、方法和技术,正在各行各业广泛参透。
智能已经成为当今各种新产品、新装备的发展方向。
所以,趁着这个机会,对人工智能中比较容易实现的人机博弈进行了解研究学习,也是很实用很有必要的。
1.3本课题的研究方法
在进行游戏设计之前,首先决定的第一个问题,使用什么开发环境来编写环境》自己虽然熟悉Java语言,但是实际开发项目实验很少,所以决定用Myeclipse,然后启动相应的工具,
其次确定整个程序的结构框架。
决定用Java应用程序开发,整个程序的功能实现流程是这样的:
实现基本的棋盘和棋子的类,添加判断胜负条件,这部分是基础,也是很重要的,电脑AI也是在这些基础上添加上来的。
这个题目的2个功能包括重要算法,电脑AI和胜负条件,胜负条件算量不大,有固定的'
模式难点是人工智能,可以这样说,人工智能的好坏决定了这个题目的完成深度。
所以,大部分时间花在AI算法的研究和改进上,对于算法我掌握的不多,研究了一些国内的五子棋算法,参考了一些游戏设计算法,详细比较各种算法的优缺点,而且参考了现代五子棋比赛的各种规则和技巧,尽量联系实际。
第二章课题相关基础
2.1五子棋棋盘和棋子
现代五子棋棋盘,经过国际棋联的多次修改,最终定位15X15路,既棋盘由横竖各15条平行线交叉组成,共有225个交叉点;
棋盘上共有五个星位,中间的星位称为天元,周围四点为小星,与围棋盘略有不同。
见图2-1
五子棋和围棋相同,分黑白2种颜色,通常为散圆形,有一面凸起或二面凸起等形状,一副棋子总数为225枚,一般的玩家都没有这个限制。
2.2规则及解释
1:
黑棋先下,白棋随后。
从天元开始顺序落子。
2:
最先在棋盘的横向、竖向、斜向形成连续的相同色五个棋子的一方为胜利。
3:
黑棋禁手盼负、白棋无禁手包括“三、三”;
“四、四”;
“长连”。
黑方只能用“四、三”去取胜。
4:
如分不出胜负,则定位平局。
5:
对局中拨子、中途退场均盼为负。
6:
五连与禁手同时形成,先五为胜。
7:
黑方禁手形成时,白方应立即指出。
如果白方未发现或发现后不立即指正,反而继续落子,则不能盼黑方负。
五子棋是由两个人在一盘棋上进行对抗的竞技运动。
在对局开始时,先由执黑棋的一方将一枚棋子落在“天元”上,然后由执白棋的一方在黑棋周围的交叉点上落子。
如此轮流落子直到某方首先在棋盘的直线,横线或斜线上形成连续的五子或五子以上,则该方就算获胜。
但是五子棋的特点是限行的一方优势很大。
因此,在职业比赛中对黑方做了种种限制,以公平竞争。
黑白双方的胜负结果必须按照职业五子棋的规则要求来决定。
2.3五子棋常用术语
二:
二是五子棋的一切进攻的基础;
有分为活二和死二。
活二:
既再下一子可形成活三的二,见图2-2
死二:
既再下一子可形成死三的二,见图2-3
三:
三是五子棋最常见的攻击手段。
三分为活三、死三、眠三。
活三:
为再下一子既可变成活四的三。
或三分为连三、跳三。
我们通常所说的三就是指活三而言。
如果是死三,将特别指出。
死三:
既对方有棋子在同一条线相邻交叉防守的三:
死三分为三种,见图2-4
眠三:
是死三的一种特性,它看上去相邻点没有对方棋子防守,很橡活三,但由于受空间限制,不论如何发展不可能称为活四,故称为“眠三”,见图2-4
反三:
反三不是指一种“三”的形状,而是指再阻止对方进攻的同时使自己成为一道活三的反攻,称为反三。
四:
四的形状有三种,它分为:
活四,冲四、跳冲四。
活四:
在同一条线上相连的四个同色棋子成为“连五”,见图2-5
冲四;
在同一条线上相连的相同的四个棋子,它与活四不同的是,其中的一端有对方的棋子进行阻挡,它只有再在另一端下一手棋才可以形成“连五”。
跳冲四“它的形状在“四”中是比较特殊的,一般分为两种,它的特点是同一条线上的同色的四个棋子,有一个或两个棋子与另外三个或两个棋子之间有一个交叉点的间隔,它的下一手棋只有下在间隔的交叉点上才能形象哼“连五。
因此,对方的棋子防守时,也只能阻挡在间隔的交叉点上,见图2-6
如图2-7,黑棋在1点进攻,形成一子双杀,这时白棋的妙手是子啊a位活三,它同时阻挡了黑棋的两种取胜方法,当黑棋仍在c位跳冲四活三时,白棋即在b位阻断黑棋冲四并形成反冲四,使黑棋的进攻功亏一篑。
一子双杀:
指用同一手棋同时形成两个胜点的方法。
追下取胜:
是指白棋逼迫黑棋形成禁手而取胜的方法。
自由获胜:
除了追下取胜以外的获胜方法,称之为自由获胜。
禁手(Forbidden):
指黑方一子落下同时形成两个以上的活三、冲四或形成长连的棋形,是对局中对黑棋禁手使用的战术或被判为负的行棋手段,白棋无禁手,如果黑子在落子的关键的第五子既形成五连的同时,有形成禁手。
此时,因黑方已成连五,故禁手失效,黑方胜利。
之所以这么规定也是为了规范比赛,其实我们业余的棋手,黑白棋子谁先下都不限制,只是先落子会有比较大的优势,另一方始终处于防守的被动状态。
所以哪一方先下子,他就有禁手,这是为了保持公平的一种手段。
但是职业连珠五子棋虽然对黑棋采取了种限制但是先行的一方优势依然很大,在高段位的比赛中还添加了一些规定,由于很少用到,就不必叙述了。
2.4五子棋攻防
五子棋是一项对抗性很强的运动,在开局进入五手两打后,就开始进入了白刃战,互相争夺先手,任何一方都不能掉以轻心,要尽量可能少犯错误,甚至不犯错误,否则将会导致速败。
众所周知,连珠五子,连五为胜,有四才能有五,有三才能有四,以此类推。
所以,在五子棋的对局中进攻和防守都是从二和三开始的。
“好的开始是成功的一半”,这条格言在五子棋里再合适不过了。
五子棋的第年秒的选择十分关键,五子棋实际上是通过选择最佳的落点,加上正确的落子次序,一步一步地占领各个要点,最终获得胜利。
对局的早期,选点的着眼点主要是使本方的棋子保持联系,为以后创造尽可能多的成三、成四的机会,同时尽量限制对成为好行。
由于在五子棋对弈过程中,通过行棋落点来控制对方的落点是可能的,比如活三、冲四的应点是可以预知的,完全有可能通过不断走出这样的先手来控制对方的着点直至胜利,所以,在对局的后期,就要在精确计算的前提下,尽在发动攻势,以取得棋局的控制权,否则一旦遗失战机,被对方抢先发动攻势,就会成为被控制的一方。
当有多个攻击点可供选择时,要选择后续手段多,又不会被对方反先的着点,如果是黑方,还特别要注意进攻终被对方反击时出线的各种禁手点的可能性。
进攻分为单攻棋和双攻棋,单攻棋指单线既单向的攻棋子,包括三子攻棋和四子攻棋。
而双攻棋指双方或双行的攻棋。
包括三、三攻棋;
四、三攻棋(冲四活三、冲四填四,冲五活三、填五冲四);
四四攻棋(双冲四、双填五、填五冲四)。
五子棋的取胜思路是由一个子开始的,目标是运用各种方法在棋盘上发展出五连乃至长连去取胜。
在这个发展过程中必然要经过由一子到两子,两子到三子,三子到四子的过程。
因此说,把各种形状和各个方面上的二三四等子力结合烂熟于胸,做到举一反三,是学习五子棋的基本功,更是能灵活运用五种取胜技巧的基础。
第三章人工智能的应用
3.1人工智能研究的特点
人工智能是一门只是的科学,一知识为对象,研究知识的获取、表示和使用。
人工智能的系统过程是数据处理->
知识处理,数据->
符号。
符号表示的是知识而不是数值、数据。
问题求解过程有启发,有推导。
人工智能是引起争议最多的科学之一。
问题焦点:
当前人工智能的研究应该以人类的普遍思维规律为主,还是以特定只是的处理和运用为主?
只能的本质是什么?
机器能达到人的水平吗?
总而言之,人工智能研究是非常困难的。
万能的逻辑推理体系至今没有创造出来,并不是因为人工智能专家的本事不够,而是因为这种万能的体系从根本上就是不可能的,他最大的弱点就是缺乏知识,缺乏人类在几千年的文明史上积累起来的知识,在实际生活中,人是根据知识行事的,而不是根据在抽象原则上的推理行事的。
即使就推理体系来说,它的主要技术是状态空间搜索,而在执行中遇到的主要困难是“组合爆炸”,事实表明,单靠一些思维原则上是解决不了的,要摆脱困境,只有大量使用理性的知识。
3.2人工智能的应用
3.2.1问题要求
人工智能的第一大成就是下棋程序,在下棋程序中应用的某些技术,如向前看几步,把困难的问题分解成一些较容易的子问题,发展成为搜索和问题归纳这样的人工智能基础技术。
今年的计算机程序已能达到下各种方盘棋和国际象棋的锦标赛水平。
但是尚未解决包括人类棋手具有的但尚未不能明确表达的能力。
另一个问题是涉及问题的原概念,在人工智能中叫问题表示的选择,人们常能找到某种思考问题的方法,从而使求解变易而解决问题。
到目前为止,人工智能程序已能知道如何考虑它们要解决的问题,既搜索解答空间,寻找较优解答。
3.2.2自然语言处理
自然语言的处理是人工智能技术应用于实际领域的典型范例,经过多年艰苦努力,这一领域已获得了大量令人注目的成果.目前该领域的主要课题是生成和理解自然语言。
3.2.3智能信息检索技术
信息获得和精化技术己成为当代计算机科学与技术研究中迫切需要研究的课题,将人工智能技术应用于这一领域的研究是人工智能走向广泛应用的契机和突破口。
第四章五子棋人工对战部分总体设计方案
4.1本系统的功能图
本系统可以实现电脑自动下棋,扫描整个棋盘记录连在一起的黑白棋子数,实现人与电脑有次序的下棋,判断人与电脑的胜负。
功能图4-1
4.2Java源文件及其功能图
序号文件名主要功能注备
1ChessFrame创建游戏的主窗口和菜单初始化棋盘
2ChessModel构造棋盘模式及判断输赢可以在文本框中显示胜负结果
3FiveChessApple主方法,程序入口开启游戏
4MainPanel构造一个棋盘及在棋盘上处理鼠标事件为下棋做准备
5WindowEvent响应关闭关闭游戏
4.3类ChessFrame
表4-1成员变量
成员变量描述变量类型名称
棋盘大小方案String[]strsize
模式方案String[]strmode
输赢标记trueiscomputer
检验输赢情况标记truecheckcomputer
棋盘宽度intwidth
棋盘高度intheight
类ChessModel引用ChessModelcm
类MainPanel引用MainPanelmp
表4-2方法
方法名称返回类型功能注备
ChessFrame()构造五子棋游戏的主窗体构造函数
publicJMenumakeMenu(Objectparent,Objectitems[],Objecttarget)JMenu构造五子棋游戏的主菜单成员方法
publicJMenuItemmakeMenuItem(Objectitem,Objecttarget)JMenuItem构造五子棋游戏的菜单项成员方法
publicJRadioButtonMenuItemmakeRadioButtonMenuItem(
Objectitem,Objecttarget)JRadioButtonMenuItem构造五子棋游戏的单选按钮式菜单项成员方法
4.4类MainPanel
表4-3成员变量
类ChessModel的引用ChessModelcm
表4-4方法
MainPanel(ChessModelmm)根据棋盘模式设定面板的大小构造函数
publicvoidsetModel(ChessModelmm)void根据棋盘模式设定棋盘的宽度和高度成员方法
publicvoidpaintComponent(Graphicsg)void根据坐标计算出棋盘方格棋子的信息成员方法
publicvoiddraw(Graphicsg,inti,intj,intv)void根据提供的棋子信息(颜色、坐标)画棋子成员方法
publicvoidmousePressed(MouseEventevt)void响应鼠标的点击事件,根据鼠标的点击来下棋,根据下棋判断胜负等成员方法
publicvoidmouseMoved(MouseEventmoveevt)void响应鼠标的拖动事件成员方法
第五章结论
程序运行结果如下:
本设计的优点是运用人工智能的算法,使计算机模拟人思考五子棋的过程,通过该课题,使我了解到一个编程语言最强大的地方不是它容易学,或者难学,而是它拥有一个强大的库。
Java是一个完全面向对象的语言,Java的命名规则是容易让人接受的。
而且容易被编程人员记住。
经过几周的实践训练,对Java的综合应用能力有了较大的提高,另外对Java的特点有了更深层次的认识。
这次实践中使用的代码虽然不长,但类与类之间也有很强的逻辑关系,这就是面向对象语言的最大优势,这样可使我们更轻松的运用Java去实现五子棋游戏的人工智能化。
虽然效果不是很好,但亲手做过之后还是很有成就感的
参考文献:
[1][美]NilsJNilsson.人工智能[M].北京:
机械工业出版社,2007:
[131-150]
[2]王永庆.人工智能原理与方法[M].西安:
西安交通大学出版社,2005:
[45-53]
[3]叶核亚.Java2程序设计实用教程[M].北京:
电子工业出版社,2007:
[64-212]
[4](美)ThomasPetchel著Java2游戏编程[M].北京:
清华大学出版社,2005:
[67-89]
[5]许南山,从磊,孙风平.并行实现有自学能力的五子棋AI[J]计算机工程与应用.2003:
13期
[6]廉中友.人工智能技术导论[M].西安:
西安电子科技大学出版社,2000:
[120-157]
[7]张孝祥.Java就业培训教程[M].北京:
清华大学出版社,2003:
[12-51]
[8]陈国君等编著.Java程序设计基础[M].北京:
清华大学出版社.2006:
[24-50]
[9]宏伟何丰泉.五子棋连珠棋初步[M].哈尔滨科技出版社.1999:
[33-68]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 游戏 设计 毕业论文