完整版五子棋游戏的设计与实现毕业设计Word下载.docx
《完整版五子棋游戏的设计与实现毕业设计Word下载.docx》由会员分享,可在线阅读,更多相关《完整版五子棋游戏的设计与实现毕业设计Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
指导教师:
***
[摘要]五子棋是起源于我国古代的黑白棋种之一,是一种简单的娱乐性较强的大众游戏,深受广大玩家的喜爱,但同时作为比赛,五子棋游戏还有着深奥的技巧。
本系统的实现采用了C语言的模块化的程序设计方式,用VisualC++6.0软件来实现程序的编译运行。
实现黑白两方分别落子,通过棋盘上方的棋盘动态信息提示,轮流落子,本系统中游戏的每一个功能在程序中都是一个相对独立的模块,比如,棋盘模块,棋子模块,选择游戏模式模块,悔棋模块等等在程序中都是独立的,但它们之间通过逻辑关系的链接又构成了一个可以使游戏正常运行的程序。
为实现游戏的双人对战模式和人机对战模式,并使得游戏尽量的简单化,本系统需要达成以下目标:
设计一个简洁的游戏初始界面;
制定合法规则,使游戏能公正的进行,并且可以断定胜;
支持人机对战模式,可以是电脑通过人工智能和合法规则选出最优落子位置;
可以悔棋,在玩家落子落错位置时,可按下悔棋键进行悔棋。
[关键词]五子棋,游戏设计,C语言,双人对战,人机对战,人工智能
Designerandimplementationofgobanggame
Author:
wangyong
(Grade11,Class1,MajorinInformationandcomputingscience,MathematicsandcomputerscienceDept.
Tutor:
Tuoshouheng
Abstract:
GobangisoneoftheblackandwhitekindoforiginatedinancientChina,isasimpleandentertainingstrongermassgames,lovedbythemajorityofplayers,butatthesametimeasthegame,gobanggamewithprofoundskills.
Theimplementationofthissystemmethod,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,Artificialintelligence(AI)
1.绪论
1.1引言
随着社会经济和科学技术的发展,计算机已经深入到人们日常工作和生活的方方面面,各种各样的程序软件也逐渐进入大众的生活,比如在闲暇时间的娱乐生活也开始变得被网络电子游戏等所充斥。
而五子棋则是最受人们欢迎的一款益智类棋局游戏,它的简单性,娱乐性,竞技性注定它是一款火爆的游戏。
1.2研究的背景及意义
1.2.1研究背景
五子棋游戏软件可以分为两种:
一种是网络五子棋游戏软件,另一种是单机五子棋游戏软件。
我设计的是单机版的五子棋游戏软件,这款软件可以供人们在闲暇时间随时随地进行娱乐,并提高自己的棋艺,实用性较强。
游戏的行棋顺序为:
黑先、白后,黑棋第一子从天元开始相互依次落子,任一方先在棋盘上形成横向或竖向或斜向的连续的颜色相同的五个以上(含五个)棋子则该方为胜。
该系统所实现的功能主要有三大功能:
游戏选项、游戏设置、帮助。
1.2.2研究意义
五子棋是起源于中国古代的传统黑白棋种,当今社会在不同的地域对五子棋也有不同的称呼,其也是一种必须动用脑力的益智类游戏,所以五子棋可以增强思维能力,提高智力。
其中蕴含古典哲学的高深学问“阴阳易理”哲理,有利于修身养性,它因为简单易学的特点,所以为人民群众所喜爱,但作为一项高水平的国际比赛,它也有深奥技巧。
1.3基本目标及主要内容
本系统是根据传统五子棋游戏的功能编写,实现了双人对战和人机对战。
主要需实现如下目标:
(1)VisualC++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.0
3.需求分析
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游戏运行流程图
当系统运行后,首先看到的是一个选择游戏模式(双人,人机)的界面,根据要求选择后,有两种情况,第一种是双人模式,根据游戏的设定先黑方落子,然后白方落子,而系统此时需要更新棋盘的状态和判断是否产生输赢,若是产生则游戏结束,若没有产生输赢,则判断是否棋盘已经落满棋子,若已经落满棋子,则判定为和棋,否则另一方落子,如此循环,直到产生输赢或和棋;
另一种是人机模式,选择该模式后,会看到设置界面,可以选择谁是先手,有两种选择电脑先手、玩家先手,若电脑先手则根据设定,电脑执黑子先下,之后白方落子,此时因为选择了电脑先手,所以电脑落子时优先进攻,只有在进攻的权值小于防守的权值时优先防守,(此处涉及到电脑的人工智能,此部分的设计概要详见本章节的电脑智能落子部分),每当棋盘落子后电脑立即更新棋盘的具体信息并判断是否已经产生输赢若是产生则游戏结束,若没有产生输赢,则判断是否棋盘已经落满棋子,若已经落满棋子,则判定为和棋,否则另一方落子,如此循环,直到产生输赢或和棋,玩家先手,则玩家执黑子先落子,然后电脑落白子,此时电脑落子优先防守,其他部分与电脑先手一样。
4.3双人模式
此模式较为简单是后面实现人机模式的铺垫。
首先用循环语句和制