五子棋初步以及对五子棋的局面估值

来源:互联网 发布:北京握奇数据股份 编辑:程序博客网 时间:2024/05/17 00:09
我对五子棋还是有一点研究的。
虽然现在技术大不如前了,但理论知识还在。
其实所有棋类游戏,先手都有一个优势。(黑白棋除外,由于黑白棋特殊的胜负判定方式,黑白棋甚至有后手优势)
为什么有先手优势?
这是因为,无论是五子棋,象棋,跳棋,等等,先手方都先走了一步。
以五子棋为例,先达成五子连珠者胜,由于黑方先走了一步,五子棋几乎是先手必胜的局面。
如果胜负方式改为,如果黑方达成五子连珠之后,白棋也可在一步之内达成五子连珠,判定平手。
如果这样,就公平了。
但是如果这样,对弈也就没有意义了。
因为后手可以下跟先手一样的棋步,永远不会有胜负。
所以为了平衡先手优势,各种棋类都有一个补偿规则。如五子棋的禁手以及三手交换五手两打,围棋的贴目等。
象棋还有一个贴时。跳棋由于对弈方人数不同而情况不同不讨论。(实际上是因为我跳棋太菜)
但是棋类游戏依然不会达成绝对平衡。
这些不谈,我今天只谈一谈无禁手下的五子棋。
先说一下什么是禁手,禁手是仅对黑方而言的,三三禁,四四禁,长连禁,在此不解释,如有兴趣请自行百度。。。
无禁手就是对先手无任何限制。
三手交换是为了防止黑方开必胜局的。
但据我理解,所有开局,都是黑优。(因为黑先走了一步)
黑必胜局就是基本上可以在20步之内把白杀出翔来。
三手交换的意思就是黑下第三手的时候,白方可以提出交换。。。然后执黑者执白执白者执黑。
五手两打是黑下第五手的时候下两处,白方选一处。(据我理解实际上完全没什么用,只是白方可以选一个自己比较熟悉的局面)
这些都是为了限制黑方的先手优势。
我今天主要谈一谈五子棋的局面估值。
我打算写五子棋的人机对战。
五子棋的局面并不复杂,估值还算比较简单。
初步决定估值为双方活三数和活二数。
以黑白方不同而参数权重不同。
如果己方占据先机,则估值以自己活三活二数为重。
如果己方不利,则尽量消除对方活二数。
一条线连续两个子并且该线两子无对方子为活二。(不连续,两子之间有一空格也算活二)
活三则是在活二基础上下一个子。
死三是活三被对方防守一子。
活四……如果有活四,就已经胜利了。
有死四或者活三,就必须要防守了。
以这些参数乘以权值,作为估值函数。
然后用估值函数博弈树搜索。
返回搜索N层之后的估值。
取估值最高的点作为下子点。
嗯,就这样。
原创粉丝点击