人機對戰五子棋,人機對戰五子棋下載?( 二 )


行同樣的操作;最后把左右兩邊的記錄合并起來,得到的數據就是該點橫向上的棋型,然后把棋型的編號填入到Computer[x][y][n]中就行了(x、y代表坐標,n=0、1、2、3分別代表橫、豎、左斜、右斜四個方向) 。而其他三
個方向的棋型也可用同樣的 *** 得到,當搜索完整張棋盤后,己方棋型表也就填寫完畢了 。然后再用同樣的 ***
填寫對方棋型表 。
注重:所有棋型的編號都要事先定義好,越重要的號數越大!
OK! 怎么樣?有點累了吧?不過千萬別泄氣!因為好戲還在后頭 。
Let's go!
(5)電腦下子:有了上面填寫的兩張棋型表,現在要作的就是讓電腦知道在哪一點下子了 。其中最簡單的
計算 *** ,就是遍歷棋型表Computer[15][15][4]和Player[15][15][4]找出其中數值更大的一點,在該點下子即
可 。但這種算法的弱點非常明顯,只顧眼前利益,不能顧全大局,這就和許多五子棋初學者一樣犯了“目光短淺”
的毛病 。
要解決這個問題,我們引入‘今后幾步猜測法’,具體 *** 是這樣的: 首先,讓電腦分析一個可能的點,
假如在這兒下子將會形成對手不得不防守的棋型(例如:‘沖四’、‘活三’);那么下一步對手就會照您的思
路下子來防守您,如此一來便完成了之一步的猜測 。這時再調用模塊4對猜測后的棋進行盤面分析,假如出現了
‘四三’、‘雙三’或‘雙四’等制勝點,那么己方就可以獲勝了(當然對黑棋而言‘雙三’、‘雙四’是禁手
,另當別論);否則照同樣的 *** 向下分析,就可猜測出第二步、第三步……
等一等,要是盤面上沒有對手必須防的棋型,哪該怎么辦呢?進攻不成的話就得考慮防守了,將自己和對手
調換一下位置,然后用上面的 *** 來猜測對手的棋,這樣既可以防住對手巧妙的攻擊,又能侍機發動反擊,何樂
而不為呢!
但是必須告訴大家的是:猜測法的運算量相當之大,據我的經驗,用Pentium-100猜測3步的走法平均需要15
秒以上時間,所以建議猜測量在5步以內 ??蓜e小瞧了這5步,有時它甚至會走出讓您拍手叫絕的妙著呢!
(6)勝敗判定:務須多言,某方形成五子連即獲勝;若黑棋走出‘雙三’、‘雙四’或長連即以禁手判負 。
到現在為止,整個五子棋軟件就基本完成了,其水平大約在中級上下 。當然,這種算法并不是更好的,但我
相信它的基本思路是正確的 。
本文到此結束,如果可以幫助到大家,還望關注本站哦!

推薦閱讀