五子棋 AI篇

2022-05-12 19:45:33 字數 2147 閱讀 6309

效果圖

贏法陣列

var wins =;

//第count種贏法

var count = 0;

//贏法的統計陣列

var mywin =;

var computerwin =;

//結束標識

var gameover = false

;var chess = document.getelementbyid("chess");

var me = true; //

判斷是黑棋還是白棋

var chessboard = ; //

判斷是否已落子

for(var i = 0; i < 15; i++) }//

再來一次

var again=document.getelementbyid("again");

again.onclick=function

()//

初始化資料

for(var i = 0; i < 15; i++) }//

橫線贏法

for(var i = 0; i < 15; i++)

count++;

}}//

豎線贏法

for(var i = 0; i < 15; i++)

count++;

}}//

斜線贏法

for(var i = 0; i < 11; i++)

count++;

}}//

反斜線贏法

for(var i = 0; i < 11; i++)

count++;

}}//

console.log(count); //572

//初始化

for(var i = 0; i < count; i++)

chess.onclick = function(e)

if(!me)

var x =e.offsetx;

var y =e.offsety;

var i = math.floor(x / 30);

var j = math.floor(y / 30);

if(chessboard[i][j] == 0) }}

if(!gameover)

}}var computerai = function

() }

for(var i = 0; i < 15; i++)

switch

(computerwin[k]) }}

if(myscore[i][j] >max)

else

if(myscore[i][j] ==max)

}if(computerscore[i][j] >max)

else

if(computerscore[i][j] ==max) }}

}}settimeout(

function

(),600);

chessboard[u][v] = 2; //

計算機落子

for(var k = 0; k < count; k++) }}

if(!gameover)

}

遊戲 五子棋 與AI

然後ai下棋時,把每個能下的地方都下一次,求個己方與對方的期望值,用個微妙的比較方法 既要考慮到己方的期望,也要考慮到對方的情況 找出期望值最好的那個點,就下那裡了。然後不一會兒我就寫出了乙個 一代 ai,不過我發現有問題,這一代中函式 val 中還沒有那個 y 導致雙方的優先度基本相當,後來我就想...

Python實現AI五子棋

開發工具 python版本 3.6.4 graphics模組。環境搭建 安裝python並新增到環境變數即可。注 graphics模組在相關檔案中已經提供,就是乙個py檔案,直接放在當前路徑或者放到python安裝資料夾下的site packages資料夾內均可。原理簡介 對於五子棋這樣的博弈類ai...

下五子棋的bot 五子棋演算法

include include include include include include jsoncpp json.h c 編譯時預設包含此庫 define n 7 每個節點的分支數 以下為各棋型的識別碼 權重 define win 1 4000 define lose 2 4000 defi...