我要投稿 投诉建议

游戏设计毕业论文

时间:2021-01-15 12:22:39 毕业论文范文 我要投稿

游戏设计毕业论文范文

  撰写毕业论文是在校大学生最后一次知识的全面检验,是对学生基本知识、 基本理论和基本技能掌握与提高程度的一次总测试。对于读软件开发的毕业生来说更是如是,以下是一篇关于游戏设计毕业论文范文,希望对同学们写毕业论文提供到一定的帮助。

游戏设计毕业论文范文

  摘要:随着IT技术的发展,很多日常生活中的游戏都被搬到了计算机里供大家娱乐,尤其是博弈类的棋类游戏,如中国的象棋,围棋,五子棋等,今年来人们对人工智能技术的研究成果使得斯算计在这些博弈游戏中能战胜很多玩家。其次,五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成人机对战的功能。在人机对弈中通过深度搜索和估值模块来提高电脑旗手的智能。分析估值模块中的影响精准性的几个要素,以及提出一些提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础山分析一些提高电脑AI方案,如递归算法、电脑学习等。算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。

  本文结合五子棋这个游戏的特点,将阐述单机版五子棋算法设计,突出人工智能在博弈方面的应用,旨在试验人工智能里的一些搜索算法,最终确定人工智能在未来各学科里的重要应用性,人工智能是一门正在速度发展的新兴的综合性很强的边缘科学,它的中心任务是如何使计算机去做那些过去只能靠人的智力才能做的工作,而选五子棋游戏的开发则是利用计算机来实现它的人工智能,从而培养我们从事软件开发方面的能力.

  关键词:五子棋 人能智能 电脑AI

  ABSTRACT

  With the development of IT technology,a lot Games in daily life have been moved to the computer for public entertainment,especially the game of chess-type games,the game of Go,gobang,etc,in recent years,artificial intelligence research makes the results that computer can overcome a lot of players in these Games。and then,as a sport,gobang is very popular,in order to become familiar with gobang rules and techniques,and the study of simple artificial intelligence,I decide to use the Java to develope gabang games and complete the functions including man-machine war。During the man-machine players,it improves intelligence of the computer players through depth search and valuation module.Analyzes Module Valuation of the precise elements,as well as number of increased precision,and compares their search for nodeswhich raises some computer learning.Algorithm of procedures contribute to the understanding of the structure,logical thinking ability,In other areas of artificial intelligence has great references.

  In this Paper,with the characteristics of Gobang,I will describe algorithm design on stand-alone version of Gobang,to highlight the application of artificial intelligence in the game,and test some search algorithms of artificial intelligence,and ultimately determine the important application of artificial intelligence in the various disciplines.AI is a new development is the speed highly integrated edge science, its central task is how to account .Computer to do that in the past to rely on human intelligence to do the job, and choose backgammon game development is the use of computers to achieve it .Artificial intelligence, in order to cultivate our ability to engage in software development.

  Keywords:Gobang;Artificial Intelligence;Computer AI

  第一章 引言

  1.1 课题背景

  五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为连珠,英译为Renju,英文称只为Gobang或FIR(Five in a Row 的缩写),亦有连五子、五子连、串珠、五幕、五目碰等多种称谓。

  五子棋起源于古代中国,发展在日本,风靡于欧洲。对于它于围棋的关系有两种说法,一说早于围棋,早在“尧造围棋”之前,民间就已有五子棋游戏;一说源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。人世纪初五子棋传入欧洲并速度风靡全球。通过一系列的变化,使五子棋这一简单的游戏复杂化、规模化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。

  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.2 Java源文件及其功能图

  序号 文件名 主要功能 注备

  1 ChessFrame 创建游戏的主窗口和菜单 初始化棋盘

  2 ChessModel 构造棋盘模式及判断输赢 可以在文本框中显示胜负结果

  3 FiveChessApple 主方法,程序入口 开启游戏

  4 MainPanel 构造一个棋盘及在棋盘上处理鼠标事件 为下棋做准备

  5 WindowEvent 响应关闭 关闭游戏

  4.3 类ChessFrame

  表4-1成员变量

  成员变量描述 变量类型 名称

  棋盘大小方案 String[] strsize

  模式方案 String[] strmode

  输赢标记 true iscomputer

  检验输赢情况标记 true checkcomputer

  棋盘宽度 int width

  棋盘高度 int height

  类ChessModel引用 ChessModel cm

  类MainPanel引用 MainPanel mp

  表4-2方法

  方法名称 返回类型 功能 注备

  ChessFrame( ) 构造五子棋游戏的主窗体 构造函数

  public JMenu makeMenu(Object parent, Object items[], Object target) JMenu 构造五子棋游戏的主菜单 成员方法

  public JMenuItem makeMenuItem(Object item, Object target) JMenuItem 构造五子棋游戏的菜单项 成员方法

  public JRadioButtonMenuItem makeRadioButtonMenuItem(

  Object item, Object target) JRadioButtonMenuItem 构造五子棋游戏的单选按钮式菜单项 成员方法

  4.4类MainPanel

  表4-3成员变量

  成员变量描述 变量类型 名称

  棋盘宽度 int width

  棋盘高度 int height

  类ChessModel的引用 ChessModel cm

  表4-4方法

  方法名称 返回类型 功能 注备

  MainPanel(ChessModel mm) 根据棋盘模式设定面板的大小 构造函数

  public void setModel(ChessModel mm) void 根据棋盘模式设定棋盘的宽度和高度 成员方法

  public void paintComponent(Graphics g) void 根据坐标计算出棋盘方格棋子的信息 成员方法

  public void draw(Graphics g, int i, int j, int v) void 根据提供的棋子信息(颜色、坐标)画棋子 成员方法

  public void mousePressed(MouseEvent evt) void 响应鼠标的点击事件,根据鼠标的点击来下棋,根据下棋判断胜负等 成员方法

  public void mouseMoved(MouseEvent moveevt) void 响应鼠标的拖动事件 成员方法

  第五章 结论

  程序运行结果如下:

  本设计的优点是运用人工智能的算法,使计算机模拟人思考五子棋的过程,通过该课题,使我了解到一个编程语言最强大的地方不是它容易学,或者难学,而是它拥有一个强大的库。Java是一个完全面向对象的语言,Java的命名规则是容易让人接受的。而且容易被编程人员记住。经过几周的实践训练,对Java的综合应用能力有了较大的提高,另外对Java的特点有了更深层次的认识。这次实践中使用的代码虽然不长,但类与类之间也有很强的逻辑关系,这就是面向对象语言的最大优势,这样可使我们更轻松的运用Java去实现五子棋游戏的人工智能化。虽然效果不是很好,但亲手做过之后还是很有成就感的

  参考文献:

  [1][美]Nils J Nilsson.人工智能[M].北京:机械工业出版社,2007:[131-150]

  [2]王永庆.人工智能原理与方法[M].西安:西安交通大学出版社,2005:[45-53]

  [3] 叶核亚.Java2程序设计实用教程[M].北京:电子工业出版社,2007:[64-212]

  [4](美)Thomas Petchel著Java 2游戏编程[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]

【游戏设计毕业论文】相关文章:

游戏设计毕业论文开题报告08-28

游戏教学设计02-07

《游戏》教学设计05-07

毕业论文设计总结09-11

设计毕业论文评语01-20

中班精品游戏活动设计《角色游戏》04-05

游戏设计开题报告02-11

《平衡游戏》教学设计02-14

《长凳游戏》教学设计12-18