圍棋搜索演算法
A. 圍棋下法規則
一.圍棋的界面
首先,我們先介紹一下圍棋的棋盤。它是由縱橫各十九條等距離的平行垂直線交叉而成。棋盤上共有361個交叉點。下棋的棋子應放在交叉點上。
我們看到棋盤上標有九個圓點,九個圓點的名稱叫作"星位",中間的星位叫作"天元"。
現在為了便於識別棋子的位置,我們把棋盤分成九個部分。四個角為四個部分,四個邊為四個部分,再有一個部分就是中腹。邊角和中腹的分界線,一般情況四線以上稱作中腹。我們在圖1的棋盤上可以看到劃有一線、二線、三線、四線及各角部和中腹的名稱。這樣我們會對棋盤有一個初步的認識。 下圍棋是非常有趣的活動。它不需要特定的場地,只需要一個棋盤和黑白棋子。棋子有黑白各一盒,每盒有一百八十個子。
二.圍棋的基本規則
對局時,黑的一方執黑先行,棋子應放在交叉點上。放下以後是不能移動的。接下來,該白棋下一個子,以後雙方輪流下子,直到結束(切記:棋子不能放在方格內,只有放在縱橫的交叉點上才能代表棋子所處的位置。如果是放在方格內,就"十三不靠"了)。
我們下棋為什麼要下在交叉點上,我們來作一個形象的比喻,棋盤的直線就好象馬路一樣,而圍出的方格好象花壇、草坪。我們只能走馬路,所以應該走在交叉點上。
三.關於氣的概念
直線相鄰的是棋子的"氣"。棋子是靠氣生存的。就像我們在生活中一樣,光有水和糧食仍然不具備生存的條件,有一樣東西是必不可少的,那就是空氣。如果我們的嘴和鼻子都被堵上,就不能夠生存。圍棋也是同樣的道理。
其他補充:圍棋的勝負規則有幾種計算方法,主要是現在中國的黑貼2又3/4子,日本的黑貼五目半,韓國最近實行的黑貼六目半。(也就是說各國的貼目數不同)
其實中國的計算方法和日本大體相同,只要把2又3/4乘以2,即得到5又1/2,故有人認為中國的一子即是日本的2目。實際上在對局可卻有極細微的差別,可能在日本輸半目的棋在中國規則里會贏半目。(這是最難搞的,各國計算時會有細微的差距!看你打算按哪個國家的了!)
其實目數的問題很麻煩,尤其是半目之間的勝負,所以,大家還是多下棋,找人系統的教一下比較好 下法:
前面已經介紹過棋盤是由十九條橫線和十九條直線交叉組成的,共有361個交叉點。這361個交叉點分為兩份,每方應得180 1/2個交叉點,這是區別勝敗的標准。下子的目的是要佔據比180 1/2更多的交叉點,這樣才能蕕勝;如果占不到180 1/2個交叉點,就算敗;如果恰恰是180 1/2,即為和棋。對局時黑子先行。一局棋下完後計算勝敗的方法是把一方的地域填滿棋子,然後數一數看是否超過180 1/2子。
圍棋可視下棋雙方水平的情況,採用不同的方法。
分先:指雙方水平旗鼓相當,由雙方輪流執黑先走。按規定黑棋先走,有一定的先手威力,應由執黑的貼出。所以黑所佔的地必須超過子才能取勝。比如黑棋數出來有185個子,即黑勝子。而白方的地只要超過子即可蕕勝。
讓先:指水平略低的一方執黑先走,終局計算時不貼子。即各佔1801/2子為和棋,哪一方超過1801/2子即可取勝。 讓子通常可視對方的水平差距情況讓二子、三子、四子…九子。由水平低的一方執黑,先在「星位」放上數子,然後由白方開始下子。終局計算時,按讓子數由黑方貼還二分之一的子數。
B. 圍棋的計算方法
這個計算比較抽象,大體上可以分為計算價值和計算變化。
圍棋是一種以佔地多少來比較勝負的游戲,所以從一開局,雙方就盡可能的多佔地。從布局(開局)始,雙方就挑選棋盤上價值大的點,輪流著子。這種判斷為價值大的點,在圍棋術語中稱為「大場」。打個比方說,有兩個人一起分一堆錢,而錢的面值不一,規定雙方每次只能拿一張鈔票。無疑雙方都會挑選當前余額中面值最大的一張。當然棋盤上每個點並沒有做價值大小的標志,這個價值需要棋手進行計算來判明。這種計算過程,一直貫徹棋局始終,直至官子(終局)階段。
棋局的進行,如果雙方都對自己的佔地滿意,平穩進行是一種可能,還有很大的可能,是一方對「分贓」狀況不滿了——或者是我能力強,應該分得更多;或者是不滿對方獲利太大——這個時候會挑起戰斗,戰斗的時候需要計算變化。計算在什麼樣的周圍環境、手段下,戰斗的成功性會較大。進行到最後的對殺(互相收氣以殺死對方),精確的計算,可能會幫助你直接屠龍獲勝。
最後順便說下計算勝負:棋盤上共361個點。考慮到黑方先行得利,所以現行規則,黑方須貼還3又3/4子、7目半、或者8點不等,然後計算勝負。這里的計算已經是「判定」的概念,只要逐個計數就可以了。
C. 現在所有的圍棋演算法,盡量全一點
有兩種新型的樹演算法,我在圍棋天地上看到過,歐洲人發現的,因為這兩種演算法,電腦棋力提升了一大截,你可以找找。
D. 有關於圍棋的演算法
主要數棋方法:中國規則數子法,黑貼3又4分之3子;日本規則數目法,黑貼6目半(韓國也是數目法,但黑貼7目半);應氏規則記點數,黑貼8點。
E. 圍棋演算法都有哪些
一看樓主就是學計算機的,這問題問的~~~
F. 圍棋演算法
我剛好做過類似的,不用每次循環計算,演算法有點復雜,但是是可實現的。
G. 圍棋輸贏的計算方法
圍棋輸贏的中國計算方式:
1、貼3又3/4子的規則:
(1)第一步,把死子提掉。
(2)第二步,只數一方圍得點數並記錄下來(一般圍得點以整十點為單位)。
(3)第三步,如果數的是黑棋,再減去3又3/4子,如果數的是白棋,再加上3又3/4子。
(4)第四步,結果和180又1/2(棋盤361個點的一半)比較,超過就算勝,否則判負。黑目數超過184.25子即勝,而白只需超過176.75子即勝。通俗來說為白棋177子為勝,黑棋184.5子為勝。
2、讓先與讓子:讓先不貼目,讓子要貼還讓子數的一半(就當被讓方是預先收了單官)。
(7)圍棋搜索演算法擴展閱讀:
圍棋行棋規則:
(1)一方並未表示棄權,另一方連走二步,判連走二步者為負。
(2)棋子下完後,又從棋盤上拿起下在別處。判棋子放回原處,警告一次。如棋子確實是掉落的原因,允許其揀起後任選著點。
(3)對局中途發現前面下的棋子已有移動,在徵得對局者一致意見後,可判移動之子挪回原處,或者判移子有效。
在對局者意見不一致時,應立即報請裁判長處理。裁判長可根據移動之子對棋局進程的影響程度,判:移動之子挪回原處;移動之子有效;和棋;重下;如屬故意移子,應判移子者為負。
(4)對局中,因外界不可抗拒的原因導致棋局散亂,應經雙方復盤確認後,繼續比賽。如雙方沒有能力復盤,則判和或重下。
如對局者確屬無意散亂了棋局,可復盤續賽。不能復盤的,則判散亂棋局一方為負。如對局一方故意散亂棋局,判負。
參考資料來源:網路-圍棋