日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

五子棋评分表算法

發布時間:2023/12/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 五子棋评分表算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近學了一點QT的繪圖,于是乎照著學長的代碼繪制了五子棋的小游戲。

最基礎的東西這里就不說了,自己的知識也僅僅比會用多那么一點,下面我們來說說這里貌似高大上的人機AI吧。


評分表算法

一般情況下棋盤是15*15的。那么應該是572個五元組。而這五元組由黑棋白棋還有空格組成。也就是 3^5 * 572 = 138996; 看著很多吧,其實是可以分類的。每個五元組就是一種局勢。

我們只用統計只有己方棋子的局勢,以及只有敵方棋子的局勢,針對這兩種局勢給予確定的評分,而其他局勢直接評分為0。

下面是我使用的是評分表

// tuple is empty Blank, // tuple contains a black chess B, // tuple contains two black chesses BB, // tuple contains three black chesses BBB, // tuple contains four black chesses BBBB, // tuple contains a white chess W, // tuple contains two white chesses WW, // tuple contains three white chesses WWW, // tuple contains four white chesses WWWW, // tuple does not exist Virtual, // tuple contains at least one black and at least one white Polluted tupleScoreTable[0] = 7; tupleScoreTable[1] = 35; tupleScoreTable[2] = 800; tupleScoreTable[3] = 15000; tupleScoreTable[4] = 800000; tupleScoreTable[5] = 15; tupleScoreTable[6] = 400; tupleScoreTable[7] = 1800; tupleScoreTable[8] = 100000; tupleScoreTable[9] = 0; tupleScoreTable[10] = 0;

很多人可能沒看懂,其實就是當前五元組中黑白棋子個數以及對應的得分,tupleScoreTable[0] 對應 沒有棋子的得分,tupleScoreTable[1 - 4] 代表 1個黑棋 到 4個黑棋的得分, tupleScoreTable[5 - 8]代表 1 個白棋到4個白棋的得分,tupleScoreTable[9] 代表黑白棋共存的情況,tupleScoreTable[10] 代表其他情況(貌似沒用?)


當然具體怎么來統計那?onezeros的博客沒有給出來,對很多初學者來說實現還是有一定困難,這里就詳細的講一講吧。

首先我們用一個棋盤大小的二維數組來儲存每個點的得分。int scoreTabel[15][15];

每次,當People或者Computer下完棋后,以該點為中心統計周圍5個點的分數(上下左右對角)。

圖1

即紅點,統計每個點的分數。

對于每個紅點,同樣的,我們向其周圍8個方向找到所有包括其自身的五元組,并統計白棋和黑棋的個數,從而根據上面的評分表進行加分。

舉個栗子

圖2

對于1號位置,我們先統計以它為底端的五元組,即第一個矩形,然后是第二個,第三個,一直到以1號位置為頂端的五元組,這樣我們就統計了y軸方向的分數。

同理,接著統計x軸方向,兩種對角線方向的五元組的得分,這樣1號點位置的得分就出來了,我們將這個值賦值在對應的scoreTable[][]里面;


對圖1中所有紅點的得分統計完成后,我們就可以遍歷整個得分表scoreTable[][],其中的分最高而且為空的位置就是計算機下子的位置。


當然,這種方法思路和編程都很簡單,自然效果比不上正規軍中極大極小值搜索中應用alpha-beta剪枝這種方法。


轉載于:https://www.cnblogs.com/chaiwenjun000/p/5321115.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的五子棋评分表算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。