关键词不能为空

当前您在: 首页 > 育儿 >

五子棋需求分析报告

作者:陕西保健网
来源:http://www.xapfxb.com/yuer
更新日期:2021-01-27 06:26

过敏性紫癜肾-

2021年1月27日发(作者:伍崇曜)






































.




















应用系统开发实践






设计题目
:






基于
VC
的五子棋游戏软件的设计与开发




指导教师
:










































Word
专业资料







































.






:















































:










计算机科学与技术
09-1


















2012


5








1





.................................... .................................................. ...............................
2

2
系统需求分析

.
.......................... .................................................. ..............................
2

2.1

系统需求

.
................ .................................................. .................................................. ..................
2

2.2

功能需求

.
............................ .................................................. .................................................. ......
2

2.3

系统运行环境
...... .................................................. .................................................. ....................
2

3
五子棋算法分析
.................................. .................................................. ...................
3

3.1

五子棋的发展
................................... .................................................. .........................................
3

3.2

五子棋的规则
............. .................................................. .................................................. .............
3

3.3

具体算法分析
.................................................. .................................................. ..........................
4

3.3.1
棋盘局势状态表示

............................. .................................................. ...................................
4

3.3.2
棋盘中下棋的顺序表示

.
............. .................................................. ...........................................
5

3.3.3
具体算法

.
......... .................................................. .................................................. ......................
5

4
系统流程
..................................... .................................................. ..........................
7

5
系统功能实现

.
.......................... .................................................. ..............................
8

Word
专业资料







































.
5.1

窗口设计

.
.................................................. .................................................. ..................................
9

5.2

棋盘设计

.
................ .................................................. .................................................. ..................
9

5.3

按钮功能的实现

.............................. .................................................. ....................................... 10

5.4

胜负判断

.
................ .................................................. .................................................. ............... 11

6
系统测试与分析
..... .................................................. ..............................................
13

7
结论
...................... .................................................. ..............................................
17

Word
专业资料







































.
1.






目前网络上有很多五子棋子游戏,玩法简单,娱乐性也很高 。五子棋不仅能增强思维能力,提高
智力,而且富含哲理,有助于修身养性。通过对五子棋的设计与开发 ,了解和掌握游戏开发的原理与
方法。让电脑像人脑一样思考,一直是人工智能发展的最终目标。作为一 门边缘学科,它有诸多的研
究领域,博弈即为其中之一。博弈的参加者可以是个人、集体、某种生物或机 器,他们都力图用自己
的“智力”去击败对手。博弈为人工智能提供了一个极好的试验场所,人工智能中 的许多概念和方法
都是从博弈程序中提炼出来的,人工智能中大多以下棋为例来研究博弈规律。本文以五 子棋为入口,
设计了一个五子棋双人对战和人机对弈系统,以实现人和人,人和计算机的博弈,最终的目 的是为了
建立一个有具体规则的五子棋平台。

2.
需求分析


目前网络上有很多五子棋子游戏,
玩法简单,
娱乐性也很高。
五子 棋不仅能增强思维
能力,提高智力,而且富含哲理,有助于修身养性。通过对五子棋的设计与开发,了解 和
掌握游戏开发的原理与方法。让电脑像人脑一样思考,一直是人工智能发展的最终目标。
作为 一门边缘学科,
它有诸多的研究领域,
博弈即为其中之一。
博弈的参加者可以是个人、
集体、
某种生物或机器,
他们都力图用自己的“智力”去击败对手。
人机对弈 程序的要点,
至少应具备以下
4
个部分:
(1)
状态表示:某种在机器中表示棋局的方法,能够让程序知
道博弈的状态。
(2) 走法产生:产生合法走法的规则,以使博弈公正地进行,并可判断对
手是否乱走。
(3)< br>搜索技术:从所有合法的走法中选择最佳的走法技术。
(4)
对弈界面。


Word
专业资料







































.
2.1
系统需求

五子棋作 为一款休闲益智游戏,
它最大的优点在于游戏规则家喻户晓,
简单,
上手快,
趣味性强,
所以受广大用户青睐,
在各大提供棋牌类游戏的平台都可以看到玩五子棋游戏
的人很多。
休闲益智游戏中等级并不是最重要的追求目标,
通过对游戏规则的熟悉,
能很
快上手掌握其操作方式,也更适合男女老幼全家共同娱乐,花费时间简短,速战速决,
在< br>短时间感受到游戏的乐趣,
完全享受气氛轻松活跃的游戏过程。
此种娱乐方式既不耽误时
间也能轻松调剂娱乐,
充分适合现代人们的娱乐需求。
更主要的是开发了人的智力,< br>成为
年轻一代最流行的游戏,据统计,五子棋游戏的玩家中,学生占了接近三分之一的比例,对学生的智力健康成长起一定作用,正所谓休闲娱乐两不误。

2.2
功能需求

要求系统界面简洁,
操作方便,
把五子棋游戏规则中最基 本的规则体现出来,
比如
“和
棋”、
“重新开局”等。五子棋还有一大特点就 是速战速决,电脑应在很短时间就应做出
判断,并能提供一定的帮助,
违反游戏规则的时候应立 即指出。在正规五子棋比赛中,

设置了“禁手”这一规则。

2.3
系统运行环境


Win 9X/Win ME/Win NT/Win 2000/Win XP/Win 2003/


3
五子棋算法分析


3.1
五子棋的发展

五子 棋是起源于中国古代的传统黑白棋种之一。
现代五子棋日文称之为“连珠”,

译为“ Renju”,英文称之为“Gobang”或“FIR”(Five in a Row
的缩写
)
,亦有“连
Word
专业资料







































.
五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。


五子棋不仅能增强思维能力,
提高智力,
而且富含哲理,有助于修身养性。
它 既有简
单易学的特性,
为人民群众所喜闻乐见,
又有深奥的技巧和高水平的国际性比赛 ;
它的棋
文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接 。
它是中西文化的交流点,是古今哲理的结晶。

五子棋起源于古代中国,
发 展于日本,
风靡于欧洲。
对于它与围棋的关系有两种说法,
一说早于围棋,早在“尧造 围棋”之前,民间就已有五子棋游戏;
一说源于围棋,是围棋
发展的一个分支。在中国的文化里 ,倍受人们的青睐。古代的五子棋的棋具与围棋相同,
纵横各十七道。
五子棋大约随围棋一起在 我国南北朝时先后传入朝鲜、
日本等地。
据日本
史料文献介绍,中国古代的五子棋是经 由高丽(朝鲜),于
1688
年至
1704
年的日本元
禄时代传到日 本的。到日本明治
32
年(公元
1899
年),经过公开征名,“连珠”这一
名称才被正式确定下来,
取意于“日月如合壁,五星如连珠”。从此,
连珠活动经过了 不
断的改良,主要是规则的变化(即对执黑棋一方的限制),例如,
1899
年规定, 禁止黑
白双方走“双三”;
1903
年规定,只禁止黑方走“双三”;
191 2
年规定,黑方被迫走
“双三”亦算输;
1916
年规定,黑方不许走“长连 ”;
1918
年规定,黑方不许走“四、
三、三”;
1931
年规定 ,黑方不许走“双四”,并规定将
19×19
的围棋盘改为
15×15
的连珠 专用棋盘。
本世纪初五子棋传入欧洲并迅速风靡全欧。
通过一系列的变化,
使五子棋这一简单的游戏复杂化、
规化,
而最终成为今天的职业连珠五子棋,
同时也成为 一种国
际比赛棋。

简单介绍一下文章中会遇到的一些关于五子棋最基本的术语


1
)先手:进攻的着法,也指对弈双方执黑棋先在棋盘上落子的一方;


2
)四三:指同时具备两个先手,其中一个四,另一个是活三;

Word
专业资料







































.

3
)活三
(
包括连三和跳三< br>)
:①连三:紧紧相连的同色三子②跳三:中间间隔一子
的活三




4
)四四:一子落下同时形成两个“四”的棋形




5
)三三:一子落下形成了两个活三的棋形;


6
)长连:相同颜色的连续六子或六子以上;


7
)禁手:对局中禁止使用的战术或被判为负的行棋手段;

(< br>8
)胜局:对局的一方获胜,称为“胜局”。包括:①一方首先在棋盘的直线或横
线或斜 线上形成连续的五子或五子以上
(特指白方)
。②对方表示认输。③对方超过比赛
规定 的时限。
④当黑方禁手形成未能同时形成五连,
白方立即指出禁手后,
判定为白方胜< br>局。⑤对方迟到超过容许时间。⑥对方严重犯规而被判负;


9
)和棋:不分胜负的对局或双方同意平局。

3.2
五子棋的规则

五子棋游戏的一个特点是先行的一方优势很大,
因此在职业比 赛中对黑方做了种种限
制,以利公平竞争。五子棋的比赛规则如下:


1
)黑棋先手、白棋后手,从天元开始相互顺序落子;


2
)最先在棋盘横向、纵向或斜向形成连续的同色五个棋子的一方为胜;


3
)黑棋禁手判负、白棋无禁手。黑棋禁手有“三、三”、“四、四”和“长连”,
包括“四、三、三”和“四、四、三”。黑棋只能以“四、三”取胜;


4
)如分不出胜负,则到为平局;


5
)五连与禁手同时形成,判胜;


6
)黑方 禁手形成时,白方应立即指出。若白方未发现或发现后不立即指出,反而
继续落子,则禁手失效,不再判 黑方负。


Word
专业资料







































.
五子棋是黑白双方或两个人之间的 竞技活动,
由于对黑白双方规则不同,
黑棋必须先
行。
一般采用猜先的方法来 决定谁执黑先行,
即双方各抓一种颜色的几枚棋子,
大数减小
数,单数双方交换,偶数不换;黑方在落下关键的第五子即形成五连的同时,如又形成禁
手,此时因黑方已经成五,而“ 五”在五子棋中是至高无上的,故禁手失效,黑方胜;所
谓黑方形成禁手,
是指黑方落下一子同 时形成两个或两个以上的活三、
冲四及长连等。

时白方应立即指出,自然而胜。

专业连珠五子棋虽然对黑棋采取了种种限制,但是黑棋先行的优势依然很大。因此,< br>在高段位的专业比赛中,又出现了三种特殊的规定:



1

“指定打法”:指比赛双方按照约定好的开局进行对弈。例如“斜月局”、
“长
星局 ”等。



2
)“三手可交换”:指黑棋下第二手棋〔盘面第三手 棋〕之后,白方如感觉黑方
棋形不利于己方,
可提出交换,
即执白棋一方变为执黑棋一 方
〔此方法不适用于指定开局
打法,而用于随意开局〕。采用此规定以后,黑棋就不会再使用诸 如“浦月”、“花月”
之类的必胜开局了。


3
)“五手两打”: 指黑棋在下盘面上关键的第五手棋时,必须下两步棋,让白方
在这两步棋中任选一步,然后再继续下。< br>

采用这一系列规定以后,黑棋先行就再无优势可言。


3.3
具体算法分析

3.3.1
棋盘局势状态表示

棋盘表示主要探讨的是是什么数据结构来表示棋盘上的信息。
一般说来,
这与具体的< br>棋类知识密切相关。通常,用来描述棋盘及其上棋子信息的是一个二维数组。

要让计算 机知道棋盘局势状态,
就是要它记住棋盘中哪个位置有黑子,
哪个位置有白
Word< br>专业资料







































.
子以及哪个位置是空点。因为五子棋的棋盘是
15
行,
15
列,因此可以将棋盘状态的描
述用一个
15
×
15
的 二维数组表示。

本程序的数据将用如下所示的数据表示:

int p[15][15]=
{{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}


其中,

1
)棋盘状态数据由一个
15
×
15
的二 维数组表示。

2
)用数字“
1
”和“
2

来表示不同的棋子,黑色棋子用“
2
”表示,白色棋子用“
1
”表示。(< br>3
)没有棋子的格
子用“
0
”表示。

3.3.2
棋盘中下棋的顺序表示

棋局中下棋的顺序也很重要,应该是黑白双方交替下棋。

本程序用
t
来判断黑白双方下棋顺序,
t
为“
0
”时由白方下棋,
t
为“
1
”时由黑方
下棋,由于五子棋规则中黑棋先手,所以初始值
t=1,即玩家执黑先手。每次落棋后,都
应改变

t
的值,
t < br>在整个对弈过程中都只能为
1
或者为
0
,即在任意时刻,都有一方可< br>以落棋,也只能有一方落棋。

Word
专业资料







































.
3.3.3
具体算法

本系统中较复杂的部分是人机对战部分。
下面 将简单分析人机对战,
双人对战则省略。
电脑要选择有利于它的最佳下法,
就要能判断 哪种形势对它最有利。
但往往对一个形势的
判断是很难做到准确的,
特别是一盘棋刚开 始的时候,
棋盘的形势不明朗,
即使是专家也
不能做出准确的判断。
为了判断 哪种下法最有利,
我们往往需要向后面计算几步,
看看在
走了几步棋之后,局面的形势 如何。这被称为“多算胜”,也就是说,谁看得越深远,谁
就可以获胜。
这种思维方式被用到了 计算机上。
向后面计算的步数越多,
系统开销就越大,
本系统只向后计算一步,根据威 胁的优先级来选择落棋的最佳点。

轮到电脑下棋时,
电脑先向棋盘搜索合法的落棋点 ,
即棋盘的空白点。
然后再利用下
面的算法先择最佳落棋点。在每个空白点,都有四个 方向需要考虑,即—、
|
、﹨、∕四个
方向。
以下就用○表示电脑所执的黑棋 ,
用□表示玩家所执的白棋,
用×表示棋盘的空白点。
在设计的时候,
尽可能 把所有情况全面考虑,
设置为搜索一个最佳落棋点位置的时候,

要保证左右展开后碰 壁,之间的空间距离至少要有六格
(
而不是五子
)
,否则就是死子。

人机对战算法流程是:顺序向下搜索,每次有符合要求的点时,视为最佳落棋点,

在 该点落棋,同时将
t
赋值为1,退出搜索并判断是否有一方获胜,然后等待玩家落棋,
再重复这一过程,直到有一方获胜。如图。







Word
专业资料
























Word
专业资料






































.
开始搜索棋盘



该点无子





找出优先级最


高的点落子







分出胜负






+

1
结束搜索








































.















人机对战算法流程图


1
),电脑搜索棋盘 里白棋是否有一步获胜的棋,即在同一条线路上有连续五个位
置上,有四颗为白棋,另外一颗为空,这时 就不用考虑玩家的棋局,直接就可以获胜。能
直接获胜的棋型有×○○○○×、□○○○○×,还包括通 过四三来形成的活四,包括有○○×○○、
○○○×○、○×○○○。


2
),电脑搜索棋盘里黑棋是否有一步获胜的棋,这时就应该让玩家的“活四”变
“死四”,这是 白棋威胁级别最高的,应立即做出反应。有直接威胁的棋型有□×□□□、
×□□□□×、□□□×□、 ×□□□□×。对于×□□□□×这种棋型,其实玩家已经获胜。


3
), 电脑搜索棋盘里白棋是否有可形成活四的棋型,进一步冲四,这时就应该主
动进攻,这种棋型包括×○○ ○××、×○○×○×、×○×○○×。这样的棋只需两步方可获胜,
Word
专业资料







































.
威胁级别仅次于上面两种。


4
),电脑搜索棋盘里黑棋是否有可 形成活四的棋型,若有,就有阻止冲四,让玩
家的“活三”变死三,这时就体现了电脑的防守策略,这种 棋型包括:××□□□×、×□×
□□×、×□□×□×。其中××□□□×在封堵后还具有威胁性,所 以在电脑没有进攻机会时,
也应该考虑这样的棋型的威胁性,因为可以利用这种棋型来造四三来获胜。< br>

5
),电脑搜索棋盘里白棋是否有可形成活三的棋型,这是获胜的过渡棋, 在整个
棋局中非常重要,这样的棋型越多,
白棋造活三的机会就越多,是获胜的关键。这种棋型
包括:××○○××、××○×○×,由于需要三步获胜,所以优先级比较低。

表1 是获胜情况分析表,
优先级是按所需步数和落棋的顺序来决定的,
在获胜所需步
数相同 的情况下,电脑所执的白棋优先级高于黑棋。



1
获胜情况分析表

棋盘上的情况:

电脑已有任意组活四或已有任意组死四

玩家已有任意组活四或已有任意组死四

电脑已有任意组活三或已有多于一组的死三

玩家已有一组死三和任意组的活二

玩家已有任意组活三或已有多于一组的死三

玩家已有一组死三和任意组的活二

获胜所需步数













优先级

1
2
3
4
5
6
4
系统流程


五子棋的规则如下:(
1
)棋盘 :采用
15
×
15
的棋盘。(
2
)下法玩家一执黑先手,< br>电脑或玩家二执白后手,
轮流在棋盘上选择一个无子的交叉点落子。
无子的交叉点又被称
为空点。(
3
)输赢判断:黑、白双方有一方的
5
颗棋子在横、竖或 斜方向上连接成一线
Word
专业资料







































.
即为该方赢。

4
)对于五子棋可分为禁手和无禁手两类,本游戏采用三三禁手。可用
15
×
15
的二维数表示棋盘各点状态

(
空、白子、黑子
)


五子棋游戏规则简单,
在每次玩家或电脑落棋后,
都要去判断是否游戏是否分出胜负,
如没有,另一方才能继续下棋。
一局游戏结束后,可以选择再来一盘,这时将棋盘数据清
空,又开始新的棋局。系统流程如图
2
所示。


















Word
专业资料

过敏性紫癜肾-


过敏性紫癜肾-


过敏性紫癜肾-


过敏性紫癜肾-


过敏性紫癜肾-


过敏性紫癜肾-


过敏性紫癜肾-


过敏性紫癜肾-



本文更新与2021-01-27 06:26,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/429923.html

五子棋需求分析报告的相关文章