西洋跳棋智能程序设计_第1页
西洋跳棋智能程序设计_第2页
西洋跳棋智能程序设计_第3页
西洋跳棋智能程序设计_第4页
西洋跳棋智能程序设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

西洋跳棋智能程序设计学院计算机学院专业计算机科学与技术班级学号姓名指导教师负责教师2016年6月摘要随着社会发展,科技进步,电脑得以普及。电脑游戏伴随着网络和电脑的普及深深的吸引了很多玩家,特别是快节奏的生活,传统的两个人一张桌子的下棋方式逐渐被取缔,人机对弈棋牌类电脑游戏被越来越多的人认可。西洋跳棋作为一款益智类棋牌游戏,不仅可以休闲娱乐,达到游戏自身放松的目的,同时,可以锻炼玩家的思维能力。计算机博弈是非常实际的计算机科学与技术研究课题,也是非常富有挑战性的人工智能领域的研究方向。西洋跳棋是一种平均分支因子较少的棋种,博弈树算法可以得到很好地应用。本游戏是利用Qt开发工具与C++开发语言,利用搜索算法设计最优落子的一款西洋跳棋人机博弈游戏。Qt是一个多平台的C++图形用户界面应用程序框架,一种完全面向对象的的程序开发软件,具有很好地封装机制、较高的模块化程度和良好的应用性。C++是一种应用非常广泛的面向对象的计算机程序设计语言,利用C++语言在游戏中的编程,使得西洋跳棋游戏具有美观的界面,人机对弈方面电脑具有较高的智商。本文主要是对西洋跳棋设计的详细阐述,分别从软件设计背景,需求分析,总体设计和详细设计深入的介绍了软件的开发,并通过对软件的调试分析详细介绍了软件的使用方法,同时,本文深入比较了多种搜素按算法在本设计中的应用。关键词:西洋跳棋;人工智能;Qt;C++AbstractWiththedevelopmentofsocietyandtheprogressofscienceandtechnology,computerhasbeenpopularized.Computergameswiththepopularityofcomputernetworksanddeeplyattractedalotofplayers,especiallythefastpaceoflife,traditionaltwotablechesshasgraduallybeenbanned,man-machinechesschesscomputergameismoreandmorepeoplerecognized.Asapuzzlegameofchess,checkerscannotonlyentertainment,toachievethegoaloftheirgametorelax,atthesametime,youcanexerciseplayer'sthinkingability.Computergameisaverypracticalcomputerscienceandtechnologyresearch,isveryrichchallengeinthefieldofartificialintelligenceresearchdirection.Checkersisanaveragebranchingfactorlesschess,thegametreealgorithmcanbeappliedwell.ThegameisusingQtdevelopmenttoolsandC++programminglanguage,usingsearchalgorithmsforthedesignofoptimalLaziacheckershuman-computergame.QtisamultiplatformC++graphicaluserinterfaceapplicationprogramframework,afullyobject-orientedprogrammingsoftware,hasagoodencapsulationmechanismandhighdegreeofmodularizationandgoodapplicationofC++isakindofwidelyusedobjectorientedcomputerprogramminglanguage,usingC++languageingameprogramming,makescheckersgamewithbeautifulinterface,man-machinechesselectricbrainhasahigherIQ.Themainpurposeofthispaperistocheckersdesignareelaboratedindetail,respectively,fromthebackgroundofsoftwaredesign,demandanalysis,generaldesignanddetaileddesigndeeplyintroducedsoftwaredevelopment,andthroughthesoftwaredebuggingandanalysisoftheusageofthesoftwareareintroducedindetail.Atthesametime,thispaperwithvarioussearchelementaccordingtothealgorithminthedesignoftheapplication.Keywords:checkers;artificialintelligence;Qt;C++目录TOC\t"标题_谢辞及参考文献,1,标题_附录,1,第2级标题,2,第3级标题,3,第1级标题,1"1前言 11.1研究背景 11.2国内外研究状况 11.3研究内容 21.4课题意义 22需求分析及相关技术介绍 32.1软件设计总体目标 32.2系统基本功能 32.3西洋跳棋游戏规则说明 42.4相关技术介绍 42.4.1Qt软件简介 42.4.2C++编程语言介绍 52.5系统技术需求 53系统分析及设计 63.1系统总体设计 63.1.1模块化设计流程 63.1.2系统总体构成流程 63.2系统算法设计概述 73.3系统特点及功能结构 73.3.1系统特点 73.3.2功能结构 74详细设计 94.1游戏界面模块详细设计 94.2棋盘设计模块详细设计 104.3人机博弈模块设计详细设计 124.3.1博弈树算法设计 124.3.2局面评估设计 124.3.3走法生成 124.4游戏规则模块详细设计 144.5胜负判断模块详细设计 155运行及调试 175.1开始界面调试情况 175.2棋盘初始化调试情况 175.3走棋调试 185.4胜负判断调试 196总结 21参考文献 22致谢 23前言研究背景西洋跳棋的起源无法追溯,根据大多数棋艺史家的考证,现在认为西洋跳棋起源于法国的南部地区。当今,例如国际象棋等游戏规则在西方已经统一标准,拥有一套统一化的走棋规则,但西洋跳棋至根据地域不同今却流传着几十种不同的游戏规则,例如波兰跳棋、英国跳棋、中东跳棋等。西洋跳棋下棋过程特别注重玩家对整体棋局的掌控性。西洋跳棋玩法种类繁多,本次设计采用最通用的西洋跳棋规则。双方轮流走子,玩家执红旗先行,人机轮流落子。规则规定:未成王的棋子只能沿斜线向对方左上或者右上前行一格(该格空出没有落子),且未成王的棋子只能前行不可后退。吃子时,对方的棋子在己方棋子斜对角格子的左上或者右上,且对方棋子左上或者右上格子没有其他棋子。加冕成王,游戏在双方底界设计了加冕线,当己方棋子到达对方底边界时,加冕成王,王棋与未成网的棋子区别在于王棋可以后退。胜负判断为两种情况,当一方棋子数量为零时,判断为对方游戏胜利;当双方棋子都无法移动后,由局面评估给出胜利一方。国内外研究状况当今,西洋跳棋在流行5000年的历史之后已经被计算机完全攻破。多年来,西洋跳棋一直被众多数学家、电脑学家和英国跳棋专家研究,取得了非常显著的成功。早在1989年,乔纳森·谢弗(JonathanSchaeffer)开始了西洋跳棋项目的研究,在1994年,谢弗的计算机程序已经可以击败当时人类最顶尖的西洋跳棋大师。在之后的研究中,乔纳森·谢弗联手艾伯特大学的学者共同研究出西洋跳棋程序“奇努克”,被誉为当今世界无法被战胜的跳棋程序。自1950年,香侬首次提出国际象棋解决方案揭开机器博弈发展序幕之后,诸多计算机爱好者和科学家在此领域不断研究,在九十年代初期,计算机连续战胜很多棋道大师,特别是1997年“深蓝”战胜世界棋王,人工智能在计算机博弈方面取得辉煌的成就。之后的研究中,相继攻克中国象棋等众多棋类。2016年3月谷歌AlphaGo与韩国与韩国棋手李世石进行的围棋比赛中计算机以4:1战胜对手获得胜利,人工智能在下棋程序又一次重大进步。研究内容西洋跳棋是一款规则简单,易于上手的游戏,由于游戏的特性,可以提高玩家对全局的把握能力,并且可以提高玩家逻辑思维能力。本次设计研究内容主要包括以下介个方面:游戏界面设计:游戏界面的设计风格直接影响到玩家对游戏的兴趣,所以游戏界面设计在游戏设计中起到非常重要的作用,游戏界面设计主要为游戏开始界面。游戏棋盘设计:本游戏棋盘设计为标准西洋跳棋10*10的棋盘设计,棋盘中100个格子黑白分明落子明确,玩家可以很容易掌握棋盘。落子设计:落子设计分为玩家落子和电脑落子。玩家落子只需遵从游戏规则即可,电脑落子采用博弈树搜索算法,寻找最优落子方案。局面评估设计:局面评估采用分类加权计算双方优势,最终判断局面胜负情况。课题意义目前,市面上棋牌类游戏种类繁多,例如中国象棋、跳棋等棋类游戏版本众多,但西洋跳棋游戏却在棋牌类游戏中特别少见,特别是网络上玩家可选择的西洋跳棋游戏制作简单,画面粗糙,加上许多让玩家不喜的广告,很难满足西洋跳棋爱好者的兴趣。因此需要一款设计画面精美,走棋风格合理的西洋跳棋程序来满足西洋跳棋爱好者的兴趣。本设计在过程中注重界面设计,Qt软件独特的界面设计功能在设计中可以为玩家设计出精美的界面,精美的开始界面有利于提高玩家的游戏乐趣。在游戏设计中,略高的电脑走法,使玩家不会感到枯燥,玩家在下棋过程中提高自身棋艺的同时,不仅可以起到放松的作用,还可以锻炼玩家的逻辑思维能力和智力。需求分析及相关技术介绍软件设计总体目标西洋跳棋是一款益智类人机对弈棋类游戏。本款软件主要针对的用户为西洋跳棋爱好者和初学者玩家,玩家在使用软件过程中达到休闲娱乐,提高棋艺的目的。设计目标:第一,界面设计独特新颖,轻松自然,可以吸引玩家,使玩家达到放松的目的;第二,游戏难度适中,电脑走棋算法合理,适合初级玩家使用,使玩家在使用过程中可以达到提高棋艺的目的,但游戏难度不会过大,不可以让玩家使用过程中因游戏难度过高感到枯燥。系统基本功能本软件使用对象为游戏玩家,以界面新颖,风格独特,走棋合理的特点为主,软件应包括游戏开始界面,棋盘,棋子,人机博弈,局面评估,胜负判断等内容,设计分为五个模块:开设界面模块:用户进入游戏,首先是欢迎界面,既游戏开始界面,玩家点击开始游戏按钮,进入游戏。棋盘设计:玩家进入游戏后,生成初始棋盘,棋盘为10*10共一百个格子,棋盘设计格子为黑白两色分别交错排布,便与玩家区分,棋子设计要求与棋盘形成对比色彩,便于玩家操作。人机对弈模块:本模块为程序设计的核心模块,玩家落子后,电脑根据搜索算法找到最优落子方法,可与玩家进行对弈。下棋规则模块:本模块为西阳跳棋程序的基础模块,判断落子地方和吃子情况。胜负判断模块:本模块的目的是判断游戏胜负。以上为游戏软件主要功能设计,系统功能模块如图2.1所示软件功能模块图西洋跳棋游戏规则说明游戏双方轮流走棋。棋子为成为王棋前,棋子只能向左上角或者右上角且无人占据的格子斜走一格。吃子时,敌方的棋子必须在己方棋子的左上角或者右上角的格子,而且该敌方棋子对应的左上角或者右上角必须没有棋子。当棋子到了对方底线,该棋子就可以加冕成王棋,王棋可以向后移动。若一个棋子可以吃棋,则必须吃子。若一方无法行走或者所有棋子均被吃,则该方算输。相关技术介绍本软件利用Qt5.2.0软件编写,编程语言为C++计算机编程语言编写。Qt软件简介Qt是一个跨平台的C++应用程序和图形界面开发框架。于1991年由奇趣科技研发,2007年之后,Qt跨平台开发战略得以迅速发展,现在广泛用于图形用户界面程序开发。Qt的特点:优良的跨平台特性:Qt支持多平台运行,在不同平台下无需修改源代码便可以生成特有的图形界面风格。面向对象:由于Qt拥有非常良好的封装机制,所以,Qt的模块化程度较高,不同元件之间协同工作简方便。丰富的应用程序接口(API):Qt拥有非常多的C++类。除此之外,Qt还拥有大量的开发文档,支持XML技术。自Qt4.6之后Qt中引进QtQuick,开发人员与设计人员可以协同创建动画模式界面和应用程序。Qt拥有简单漂亮的界面,同时简单易学并且资料丰富,实用性很强。C++编程语言介绍C++编程语言是一种面向对象的程序设计语言,是由C语言发展而来。C++继承了C语言大部分特点,并在C语言的基础上进行了完善,添加了类,C++能够与C语言相互兼容。C++编程语言的优势:在高级语言中处理运行速度最快的面向对象程序设计语言,目前市面上大多数游戏软件都是又C++来实现的。语言灵活,功能强大,特别是类层次结构的设计。C++标准定义细致,具有严谨、精确的特性,语法思路参差分明,语法结构明确。

系统技术需求本程序采用Qt开发环境,编程语言使用C++编程语言的西洋跳棋游戏。开发环境:QtCreator5.2.0运行环境:Windows7x64系统分析及设计本章内容是在第二章的需求分析的基础上形成的程序设计蓝图,作为后续编码设计的依据。本章主要介绍了西洋跳棋程序开发的总体设计。系统总体设计模块化设计流程根据需求分析,游戏设计需要六大模块,每个模块功能实现如下:开设界面模块:设计开始界面。绘制棋盘与棋子设计设计模块:绘制棋盘,设计棋子。人机对弈模块:设计算法,实现人机对弈。下棋规则模块:根据规则判断落子地方和吃子情况。胜负判断模块:设计算法判断游戏胜负。系统总体构成流程西洋跳棋博弈软件构成如图3.1所示西洋跳棋博弈软件构成图乙方为玩家,甲方为电脑。乙方遵循游戏规则落子,甲方通过对当前局面进行局面评估,然后进行博弈树搜索算法进行搜索,形成当前最优落子,生成走法并落子,甲、乙双方落子后,当前局面在棋盘显示,电脑循环对棋盘当前局面扫描,经当前局面反馈给甲方机器博弈系统,甲方重新进行局面评估,生成走法。系统算法设计概述西洋跳棋人机对弈模块为系统的核心模块,算法采用极大极小值算法,算法的本质思想是:一方总是寻找对己方最有利的的走法,而另一方总是寻找对对方最不利的走法,其搜索树如图3.2所示图3.2极大—极小搜索算法树根据算法树可知Min节点总是从其下一层Max中挑选估值最小的节点进行估值,Max节点刚好相反。在走棋过程中,遍历整颗搜索树,寻找对己方最有利的走法走子。系统特点及功能结构系统特点具有和谐的界面。界面设计美观,简洁。具有易操作性。本系统避免过多按钮在游戏中给玩家带来的不便,设计简单,已于操作。适用于广大西洋跳棋爱好者,面向性广阔。本系统是本地游戏,安全可靠功能结构通过上文需求分析和总体设计,本系统以5个模块为目标设计。其中,下棋规则模块为基础,为玩家和电脑落子提供基础规则,人机对弈模块为系统核心,本次设计采用极大极小人机博弈搜索算法设计了合理的电脑落子算法,绘制棋盘模块和胜负判断模块为本次设计的前提,为游戏的可行性提供保障,最后是游戏界面设计,为整体游戏进行美化。其具体模块及主要功能结构图如图3.2所示西洋跳棋整体设计及主要功能结构图详细设计游戏界面模块详细设计为了使游戏界面美观大方,从网络上选取图片,并用美图秀秀软件对所选图片进行美图修改,利用Qt库自带的paintEvent(QPaintEvent

*e)函数设计了游戏开始界面,开始界面采用绿色图片作为背景图片,一方面可以缓解玩家视觉疲劳,另一方面,背景颜色与开始游戏按钮色彩区分明确,使整体设计达到简单、美观的效果。游戏界面模块流程图如图4.1所示游戏界面模块流程图程序运行首先进入游戏开始界面,点击开始游戏按钮,将进入游戏。界面设计尺寸长为10cm,宽为8cm,并在界面中添加“开始游戏”按钮,该按钮有Qt编程工具中的界面布局工具完成,关键代码如图4.2所示界面设计模块开始游戏按钮添加关键程序通过界面背景设计和按钮添加,开始界面模块设计完成,开始界面模块设计效果图如图4.3所示界面设计效果图棋盘设计模块详细设计该模块的主要功能是绘制棋盘和设计棋子,棋盘与棋子分为两种状态,一种是初始化状态,当点击开始游戏按钮后,进入游戏,此时,棋盘显示为初始化状态。初始化状态时,甲、乙双方各持有15枚棋子处于双方边界。另一种状态是走子或者吃子时,棋盘中棋子位置发生改变,甲、乙双方轮流走子,每次走子之后都将跟新一遍棋盘。棋盘绘制与棋子设计模块流程图如图4.4所示棋盘绘制与棋子设计模块棋盘设计包括棋盘绘制和棋子设计在高性能的博弈设计中,比特棋盘应用较为广泛,西洋跳棋智能程序设计也采用比特棋盘设计而成。棋盘设计了10*10共100个格子,其中50个格子用来落子,棋盘设计用4个64位无符号整型设计而成,如表4.2所示棋子位置与对应比特关系表494847464544434241403938373635343332313029282726252423222120191817161514131211109876543210由<黑棋,黑王棋,白棋,白王棋>四元素组生成棋盘,棋盘初始状态为<0X0003FFFFC00000,0,0X000000000FFFFF,0>, 棋盘设计效果图如图4.2所示棋盘设计效果图人机博弈模块设计详细设计博弈树算法设计人机博弈模块为本次设计核心模块,而博弈树算法为本次设计核心算法。该模块设计主要目的是完成人机对弈过程。该过程设计核心算法为极大-极小搜索算法,算法的核心思想是,一方总是寻找对己方最有利的走法,另一方总是寻找对对方最不利的走法。在本次设计中,设计玩家为蓝色方,电脑为红色方,红色方为极大方,博弈树搜算算法设计的核心是红方通过搜索算法和局面评估函数找到对自己最有利的走法。计算机走棋由函数computer_go()设计完成。局面评估设计西洋跳棋是零和游戏,局面评估影响因素众多,本次设计主要对以下几个方面进行评估,分别为棋子和王棋的数量,处于安全位置的棋子和王棋的数量(安全位置是指处于底边或者边界无法被对方吃子的位置),可以移动的棋子和王棋数量,还有防御棋子数量和进攻棋子数量。估值函数设计思路为:估值方法=电脑棋子数-选手棋子数-0.5*威胁棋子数(可能会被吃掉的棋子)估值函数最重要的任务是找到威胁棋子,在程序中由CalValue()函数设计完成。在设计中,函数InThreat()判断该棋子是否有可能被对方棋子吃掉,判断标准是对该棋子左上、右上、左下、右下分别判断。函数InBoard()则判断棋子当前位置是否处于边界。走法生成普通棋子走法生成普通棋子走棋规则为棋子可沿对角线对方方向棋子周边移动一个,移动方向的格子为空。遇到吃子时,被吃的棋子周围有空格才可以吃子,其设计流程如下,普通棋子走棋流程图如图4.6所示若棋子列表不为空,则从棋子列表中取出一个棋子;对该棋子相邻四个方向进行判断,若存在对方棋子且对方棋子后方格子为空,则将该走法加入走法栈中,否则到第③步;若走法栈不为空,则从走法栈中取出一个走法;如果从棋子位置可以继续吃子,则按照第②步继续走子;否则若当前吃子数量大于最大吃子数量,则清空吃子走法列表;若当前吃子数量等于最大吃子数量,则将该走法加入走法列表;否则到第③步;若该走法最后一步落在加冕线上,则棋子加冕成王,否则到第①步;否则吃子走法终结普通棋子走法生成流程图王棋走法生成王棋是由普通棋子到达加冕线转换而来,因此王棋走法与普通棋子走法有部分相同,王棋走发生成流程图如图4.7所示,王棋走法流程如下,若棋子列表不为空,则从棋子列表中取出一个棋子;对该棋子相邻四个方向进行判断,若从在对方棋子且对方棋子为空,则将该走法加入走法栈中,将后面所有空格子走法加入走法栈中,否则到第④步;若走法栈不为空,则从走法栈中取出一个走法;如果从棋子位置可以继续吃子,则按照第②步继续走子;否则若当前吃子数量大于最大吃子数量,则清空吃子走法列表;否则若当前吃子数量等于最大吃子数量,则将该走法加入走法列表;否则到第④步;否则到第①步;否则吃子走法终结王棋走法生成流程图游戏规则模块详细设计本模块主要功能是实现游戏按照规则落子,西洋跳棋游戏规则为,游戏双方轮流走棋。棋子为成为王棋前,棋子只能向左上角或者右上角且无人占据的格子斜走一格。吃子时,敌方的棋子必须在己方棋子的左上角或者右上角的格子,而且该敌方棋子对应的左上角或者右上角必须没有棋子。当棋子到了对方底线,该棋子就可以加冕成王棋,王棋可以向后移动。若一个棋子可以吃棋,则必须吃子。若一方无法行走或者所有棋子均被吃,则该方算输。游戏规则在程序中有函数CanMove()设计完成,普通走子规则由函数Computer_Can_Move()生成,普通棋子吃子规则由函数Computer_Can_Eat()设计完成。代码if(_piece->GetStatus()!=piece::king)returnfalse;完成了普通棋子不能后退,王棋可以后退的游戏规则。游戏规则模块流程图如图4.8所示游戏规则模块流程胜负判断模块详细设计本模块设计主要是在游戏结束后判断玩家和电脑的胜负情况。胜负判断有两种情况,一种是一方无法走棋,则该方判定为输,另一种是一方在棋盘中棋子数目为零。胜负判断流程图如下图4.8所示胜负判断模块流程图双方轮流落子之后,每次落子都会更新棋盘,根据流程图设计,首先由系统判定游戏是否结束,在程序设计中,游戏是否结束设计函数GameOver()判定,判定标准为一方棋子数目为零或者无法走子,判定游戏结束之后,判定玩家和电脑的赢家。程序中函数IsHostWin()判定电脑是否取得胜利,玩家胜负判定由函IsAwayWin()设计,评定流程与计算机是否胜利流程相同,判定条件为客队棋子是否可以移动,计算机判定胜利过程流程图如图4.9所示 计算机胜负判定流程图运行及调试开始界面调试情况程序运行,进入游戏开始界面,如图5.1所示游戏开始界面运行情况说明:程序运行,进入游戏开始界面,界面画质清楚,点击开始游戏按钮,进入游戏良好。棋盘初始化调试情况游戏开始,进入游戏,此时棋盘为初始化状态,如图5.2所示棋盘初始化界面运行情况说明:棋盘初始化状态良好,按照详细设计,棋盘为10*10共100个棋格,棋盘底色为黑白两色,双方各15个棋子排布在双方底界。棋子与棋盘颜色分明。走棋调试玩家执蓝旗现行,电脑后手,走子按照规则沿斜对角线方向现行,每次移动一个棋子,可吃子,运行结果如图5.3,5.4所示普通棋子走棋图王棋走子运行图运行情况说明:普通棋子走棋良好,遇到可吃棋子自动吃子,普通棋子到对方底线变成王棋,王棋走子状况良好,测试表如表5.1所示表5.1走棋测试表步骤测试描述预期结果测试结果1玩家先手走子,电脑后手轮流走棋轮流按照规则走子双方轮流走自,可按规则走子2遇到可吃子必须吃子双方均在可吃子时吃子双方可按规则吃子3棋子到对方底线加冕成王棋普通棋子变成王棋普通棋子变成王棋4王棋吃子王棋按照规则吃子王棋按规则吃子胜负判断调试当一方棋子为零或一方无棋可走时,系统判断胜负并作出评断。一方棋子数目为零时系统做出评判如图所5.5所示一方棋子数目为零系统做出胜负评判当一方无法走棋时,电脑做出胜负判断如图5.6所示一方无法走棋时系统做出胜负评判图运行结果说明:当一方棋子为零或者无棋可走时,系统做出胜负评判并作出提示,运行状况稳定。总结本章主要内容是对西洋跳棋智能程序设计的总结。本次设计应用C++编程语言,在Qt开发平台设计编写,完成了游戏开始界面设计、棋盘绘制、棋子走法生成、胜负判断等项目,设计完成的西洋跳棋智能程序界面精美,走棋合理,操作简单,符合本次设计要求。项目优势:优良的游戏界面。与网络上流传的西洋跳棋程序比较,本次设计拥有精美的界面设计,开始界面简单易用,避免了玩家错误点击导致无法运行的难题,同时棋盘棋子设计风格独特黑白底色的棋盘设计,玩家可以清楚的思考下一步走棋,红色与蓝色棋子色彩分明,玩家在走棋过程中能够清楚看清自己的棋子位置,便于掌控全局。棋盘与棋子形成强烈的色彩感,可吸引玩家。合理的走棋算法。本次设计采用经典的极大—极小搜算算法设计,在设计过程中,难度适中。设计中,较高的电脑棋艺水平可以提高玩家的棋艺水平,游戏设置水平适中,玩家在娱乐中不会感到枯燥。项目不足:游戏设计中,注重走棋的设计,对娱乐性设计不足,缺少一些音乐文等娱乐项目。无法人人对战,按照设计要求,本次设计是人机对弈,在设计过程中,没有设计人人对弈模式,整体游戏有所欠缺。本次毕业设计过程中,出现了很多问题,是对平时学习能力欠缺最直观的反映,在设计中,通过多方面的学习,完善了之前学习的不足,同时,设计中要求的Qt软件在此之前没有使用过,通过本次设计,学会了使用新的工具。在设计中,不仅学到了许多技术,同时不断克服自身不够严谨的态度,收益良多。参考文献谭浩强.Java语言程序设计(第三版)[M].北京:清华大学出版社,2008焦尚斌,刘丁.博弈树置换表启发式算法研究[J].计算机工程应用,2010(06)王娇,徐兴和.计算机博弈:人工智能的前沿领域—全国大学生计算机博弈大赛[J].计算机教育.2012(07)张利群.五道棋计算机博弈程序设计[J].计算机工程.2010(10)李天明.并行计算机博弈系统设计与改进[J].电子制作.2014(21)张颖,李祖枢.棋类计算机博弈系统的主要研究方法及在6子棋上的应用[J].重庆工学院学报(自然科学版).2008(09)MustaphaLakrib,TewfikSari.

Timeaveragingforordinarydifferentialequationsandretardedfunctionaldifferentialequations[J].

ElectronicJournalofDifferentialEquations,2010,2010(40,).MerrickJ.DeWitt,BradleyS.Prall,RobertJ.Levis.

Orientationalaveragingintheintensefieldtunnelionizationofmolecules[J].

TheJournalofChe

温馨提示

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

评论

0/150

提交评论