五子棋游戏的设计与实现毕业设计论文.docx
五子棋游戏的设计与实现毕业设计论文当前位置:文档视界五子棋游戏的设计与实现毕业设计论文五子棋游戏的设计与实现毕业设计论文毕业设计论文原创性声明和使用受权讲明原创性声明本人郑重承诺:所呈交的毕业设计论文,是我个人在指导老师的指导下进行的研究工作及获得的成果。尽我所知,除文中十分加以标注和致谢的地方外,不包含其别人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过奉献的个人或集体,均已在文中作了明确的讲明并表示了谢意。作者签名:日期:指导老师签名:日期:使用受权讲明本人完全了解大学关于采集、保存、使用毕业设计论文的规定,即:根据学校要求提交毕业设计论文的印刷本和电子版本;学校有权保存毕业设计论文的印刷本和电子版,并提供目录检索与阅览服务;学校能够采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校能够公布论文的部分或全部内容。作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所获得的研究成果。除了文中十分加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要奉献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承当。作者签名:日期:年月日学位论文版权使用受权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人受权大学能够将本学位论文的全部或部分内容编入有关数据库进行检索,能够采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计论文的内容包括:1封面按教务处制定的标准封面格式制作2原创性声明3中文摘要300字左右、关键词4外文摘要、关键词5目次页附件不统一编入6论文主体部分:引言或绪论、正文、结论7参考文献8致谢9附录对论文支持必要时2.论文字数要求:理工类设计论文正文字数不少于1万字不包括图纸、程序清单等,文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文复印件。4.文字、图表要求:1文字通畅,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请别人代写2工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3毕业论文须用A4单面打印,论文50页以上的双面打印4图表应绘制于无格子的页面上5软件工程类课题应有程序清单,并提供电子文档5.装订顺序1设计论文2附件:根据任务书、开题报告、外文译文、译文原文复印件次序装订五子棋游戏的设计与实现摘要五子棋是起源于我国古代的黑白棋种之一,是一种简单的娱乐性较强的群众游戏,深受广大玩家的喜欢,但同时作为比赛,五子棋游戏还有着深奥的技巧。本系统的实现采用了C语言的模块化的程序设计方式,用VisualC+6.0软件来实现程序的编译运行。实现黑白两方分别落子,通过棋盘上方的棋盘动态信息提示,轮流落子,本系统中游戏的每一个功能在程序中都是一个相对独立的模块,比方,棋盘模块,棋子模块,选择游戏形式模块,悔棋模块等等在程序中都是独立的,但它们之间通过逻辑关系的链接又构成了一个能够使游戏正常运行的程序。为实现游戏的双人对战形式和人机对战形式,并使得游戏尽量的简单化,本系统需要达成下面目的:设计一个简洁的游戏初始界面;制定合法规则,使游戏能公正的进行,并且能够断定胜;支持人机对战形式,能够是电脑通过人工智能和合法规则选出最优落子位置;能够悔棋,在玩家落子落错位置时,可按下悔棋键进行悔棋。关键词五子棋,游戏设计,C语言,双人对战,人机对战,人工智能DesignerandimplementationofgobanggameAuthor:wangyong(Grade11,Class1,MajorinInformationandcomputingscience,MathematicsandcomputerscienceDept.ShaanxiUniversityofTechnology,Hanzhong723000,Shaanxi)Tutor:TuoshouhengAbstract:GobangisoneoftheblackandwhitekindoforiginatedinancientChina,isasimpleandentertainingstrongermassgames,lovedbythemajorityofplayers,butatthesametimeasthegame,gobanggamewithprofoundskills.TheimplementationofthissystemhasadoptedCofmodularprogramdesignmethod,usingVisualC+6.0softwaretorealizetheprogramcompilerrunning.Implementationofblackandwhitetwopartiesmovelater,respectively,bytheboardatthetopofthedynamicmessageboard,taketurnstomovelater,thisgameinthesystemeachfunctionintheprogramisarelativelyindependentmodules,suchas,theboardmodule,pawnmodule,selectgamemodemodule,backmoduleandsoonintheprogramareindependent,butthelinkthroughthelogicalrelationshipbetweenthemandformacanmakethenormaloperationofthegameprogram.Inordertorealizethedoublemodeandman-machinegamemode,andmakethegameasfaraspossiblethesimplification,thesystemneedstoachievethefollowinggoals:designasimplegameofinitialinterface;thelegalrules,canmakethegamefair,andyoucancall;supporttheman-machinemode,canbeacomputerbyartificialintelligenceandlegalrulestoselecttheoptimalmovelater;cantakeback,fallintheplayersmovelaterfaultlocation,canpressthebackbuttontoback.Keywords:gobang,Gamedesign,TheCProgrammingLanguage,Doubleagainst,Theman-machineagainst,ArtificialintelligenceAI目录1.绪论(1)1.1引言(1)1.2研究的背景及意义(1)1.2.1研究背景(1)1.2.2研究意义(1)1.3基本目的及主要内容(1)2.系统开发环境的介绍及选择(1)2.1C语言(1)2.2开发及运行环境(2)3.需求分析(2)3.1总体需求分析(2)3.2可行性分析(2)3.2.1技术可行性分析(2)3.2.2经济可行性分析(2)3.2.3操作可行性分析(2)3.3功能分析(2)4.概要设计(3)4.1五子棋特点与规则(3)4.2流程图(3)4.3双人形式(5)4.4人机形式(5)4.5智能算法(5)4.6悔棋流程(6)4.7输赢判定(6)5.具体设计(6)5.1画出游戏界面(6)5.2画出棋子(8)5.3设置棋局规则(10)5.3.1落子规则(10)5.3.2悔棋规则(11)5.3.3输赢规则(11)5.4实现双人对战(12)5.5悔棋功能(12)5.6判定输赢(14)5.7退出游戏(16)5.8实现人机对战(16)5.8.1先手设置界面(16)5.8.2电脑智能落子(17)5.8.3能够悔棋、退出(21)5.8.4显示输赢(21)5.9各模块之间的衔接(22)6.总结(24)致谢(25)参考文献(26)1.绪论1.1引言随着社会经济和科学技术的发展,计算机已经深化到人们日常工作和生活的方方面面,各种各样的程序软件也逐步进入群众的生活,比方在闲暇时间的娱乐生活也开场变得被网络电子游戏等所充斥。而五子棋则是最受人们欢迎的一款益智类棋局游戏,它的简单性,娱乐性,竞技性注定它是一款火爆的游戏。1.2研究的背景及意义1.2.1研究背景五子棋游戏软件能够分为两种:一种是网络五子棋游戏软件,另一种是单机五子棋游戏软件。我设计的是单机版的五子棋游戏软件,这款软件能够供人们在闲暇时间随时随地进行娱乐,并提高本人的棋艺,实用性较强。游戏的行棋顺序为:黑先、白后,黑棋第一子从天元开场互相依次落子,任一方先在棋盘上构成横向或竖向或斜向的连续的颜色一样的五个以上(含五个)棋子则该方为胜。该系统所实现的功能主要有三大功能:游戏选项、游戏设置、帮助。1.2.2研究意义五子棋是起源于中国古代的传统黑白棋种,当今社会在不同的地域对五子棋也有不同的称呼,其也是一种必须动用脑力的益智类游戏,所以五子棋能够加强思维能力,提高智力。其中蕴含古典哲学的高深学问“阴阳易理哲理,有利于修身养性,它由于简单易学的特点,所以为人民群众所喜欢,但作为一项高水平的国际比赛,它也有深奥技巧。1.3基本目的及主要内容本系统是根据传统五子棋游戏的功能编写,实现了双人对战和人机对战。主要需实现如下目的:1VisualC+6.0环境的下的C语言编程2五子棋棋盘的设计3五子棋棋子的设计4黑白双方轮流落子的实现5棋局的悔棋功能6棋局进行时的退出功能7胜负的断定8人工智能算法分析2.系统开发环境的介绍及选择2.1C语言C语言诞生于1972年的美国,在次之前还有A语言其创造设计者是一位女性和B语言。如今C语言成为了世界上使用最广泛的,最流行的高级程序设计语言之一。随着经济与科技的发展,微型计算机日渐普及,这导致了C语言的版本的多样化,出现了一些不一致的语言特点。为了改变这种情况,美国国家标准研究所制定推广了一套ANSI标准,作为现行的C语言标准。常用的编译软件有MicrosoftVisualC+。C语言绘图能力强,具有很好的可移植性,并具备很强的数据处理能力,因而适于编写系统软件。它是数值计算的高级语言。由文献1-4可知。2.2开发及运行环境编程语言:C语言操作系统:Windows7开发工具:MicrosoftVisualC+6.03.需求分析3.1总体需求分析五子棋游戏是一款很符合当代人的休闲特点的益智类游戏,其是我国古代围棋的的衍生物,本系统主要分为两部分:双人人对战和人机对战。双人对战形式实现的功能:选择双人对战,游戏界面,实现双人轮流落子,棋盘动态信息显示,判定输赢,重新开场游戏。人机对战形式实现的功能:选择人机对战,设置先手,实现玩家与电脑轮流落子,棋盘动态信息显示,判定输赢,重新开场游戏。3.2可行性分析3.2.1技术可行性分析计算机硬件和软件技术的飞速发展,为游戏系统的开发提供了设备条件。当前在网络上有很多的五子棋软件可供参考借鉴,而且我本人也熟练地把握了C语言在MicrosoftVisualC+6.0环境下的基本应用,因而本游戏的开发技术上是完全可行的。3.2.2经济可行性分析该游戏适用于所有人群,开发该游戏的费用主要包括开发阶段的费用以及今后的运行、维护费用。五子棋游戏简单易学,为人民群众喜闻乐见。该游戏功能强大,界面简单,用户在使用方面不存在任何障碍。其开发具有很强的经济性。3.2.3操作可行性分析本游戏适用于Windows操作系统之上,对于该游戏的推广使用提供了很好的平台。该游戏使用C语言编写,具有很强的移植性,使其能够运行很方便。在操作上主要凭借使用Windows键盘操作,方便简单。使用前只要对用户进行简单的讲明即可。3.3功能分析该款游戏主要是由下面五个模块组成:图3.1游戏功能图4.概要设计4.1五子棋特点与规则五子棋是两方之间进行的竞技活动,专用棋盘为15*15,五连子的方向为横、竖、斜;任一方在棋盘上构成横向、竖向、斜向的连续的一样颜色的五个含五个以上时即为该方胜利;在棋盘上以对局双方均不可能构成五连为和棋。黑白双方依次落子,由黑方先下,由于先下一方在局面上占优,所以五子棋规则分为禁手和无禁手两种。禁手规则:禁手是针对先行的黑棋而言,以限制黑棋的先行优势为目的。对局中假如黑棋违背禁手规则将被判负。以中国五子棋竞赛规则为例,有三三禁手黑棋一子落下时同时构成两个或两个以上的活三,此子必须为两个活三共同的构成子、四四禁手黑棋一子落下同时构成两个以上的冲四或活四、长连禁手黑棋一子落下构成一个或一个以上的长连。无禁手指不对黑棋的先行优势做任何限制。本系统采用的是无禁手规则。4.2流程图游戏开场后,运行经过如下列图4.1所示:图4.1游戏运行流程图当系统运行后,首先看到的是一个选择游戏形式双人,人机的界面,根据要求选择后,有两种情况,第一种是双人形式,根据游戏的设定先黑方落子,然后白方落子,而系统此时需要更新棋盘的状态和判定能否产生输赢,若是产生则游戏结束,若没有产生输赢,则判定能否棋盘已经落满棋子,若已经落满棋子,则断定为和棋,否则另一方落子,如此循环,直到产生输赢或和棋;另一种是人机形式,选择该形式后,会看到设置界面,能够选择谁是先手,有两种选择电脑先手、玩家先手,若电脑先手则根据设定,电脑执黑子先下,之后白方落子,此时由于选择了电脑先手,所以电脑落子时优先进攻,只要在进攻的权值小于防守的权值时优先防守,此处涉及到电脑的人工智能,此部分的设计概要详见本章节的电脑智