五子棋初步以及对五子棋的局面估值
生活随笔
收集整理的這篇文章主要介紹了
五子棋初步以及对五子棋的局面估值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我對五子棋還是有一點研究的。
雖然現在技術大不如前了,但理論知識還在。
其實所有棋類游戲,先手都有一個優勢。(黑白棋除外,由于黑白棋特殊的勝負判定方式,黑白棋甚至有后手優勢)
為什么有先手優勢?
這是因為,無論是五子棋,象棋,跳棋,等等,先手方都先走了一步。
以五子棋為例,先達成五子連珠者勝,由于黑方先走了一步,五子棋幾乎是先手必勝的局面。
如果勝負方式改為,如果黑方達成五子連珠之后,白棋也可在一步之內達成五子連珠,判定平手。
如果這樣,就公平了。
但是如果這樣,對弈也就沒有意義了。
因為后手可以下跟先手一樣的棋步,永遠不會有勝負。
所以為了平衡先手優勢,各種棋類都有一個補償規則。如五子棋的禁手以及三手交換五手兩打,圍棋的貼目等。
象棋還有一個貼時。跳棋由于對弈方人數不同而情況不同不討論。(實際上是因為我跳棋太菜)
但是棋類游戲依然不會達成絕對平衡。
這些不談,我今天只談一談無禁手下的五子棋。
先說一下什么是禁手,禁手是僅對黑方而言的,三三禁,四四禁,長連禁,在此不解釋,如有興趣請自行百度。。。
無禁手就是對先手無任何限制。
三手交換是為了防止黑方開必勝局的。
但據我理解,所有開局,都是黑優。(因為黑先走了一步)
黑必勝局就是基本上可以在20步之內把白殺出翔來。
三手交換的意思就是黑下第三手的時候,白方可以提出交換。。。然后執黑者執白執白者執黑。
五手兩打是黑下第五手的時候下兩處,白方選一處。(據我理解實際上完全沒什么用,只是白方可以選一個自己比較熟悉的局面)
這些都是為了限制黑方的先手優勢。
我今天主要談一談五子棋的局面估值。
我打算寫五子棋的人機對戰。
五子棋的局面并不復雜,估值還算比較簡單。
初步決定估值為雙方活三數和活二數。
以黑白方不同而參數權重不同。
如果己方占據先機,則估值以自己活三活二數為重。
如果己方不利,則盡量消除對方活二數。
一條線連續兩個子并且該線兩子無對方子為活二。(不連續,兩子之間有一空格也算活二)
活三則是在活二基礎上下一個子。
死三是活三被對方防守一子。
活四……如果有活四,就已經勝利了。
有死四或者活三,就必須要防守了。
以這些參數乘以權值,作為估值函數。
然后用估值函數博弈樹搜索。
返回搜索N層之后的估值。
取估值最高的點作為下子點。
嗯,就這樣。
總結
以上是生活随笔為你收集整理的五子棋初步以及对五子棋的局面估值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的github地址
- 下一篇: python时间减法_干!一张图整理了