亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
瀏覽器直接卡死

最新回答 / 迷茫_彭
可以的??????1 在 ia? 計算得分前 判斷 棋盤上是否 有子?????????如果有?????????????????那么就走正常流程?????????如果沒有?????????????????就隨機挑選一個坐標 就可以了
額。。。算法不夠強大啊,我都贏了計算機。。。

最贊回答 / 慕粉212319924
那個位置的贏法數組里包含了這兩個贏法。計算的時候都進行了加分處理,這個位置的分數最高,肯定被找出來了

最新回答 / 慕標5206426
canvas的原點是在左上角開始,那么i=0的時候,j從0到14,那么就是最上面的一條橫線了,[0][0] ,[0][1]....?,[0][14]

已采納回答 / qq_克克的_0
完整代碼地址:https://gitee.com/yanglilong127/ai_manmachine_war_chess 該游戲演示地址:https://yanglilong127.gitee.io/ai_manmachine_war_chess
老師的視為邏輯好強啊
好東西,Mark

最新回答 / 慕斯1869836
下一層是k<5,j+k就是邊界
算法邏輯比較容易理解,但是能設計出這樣算法的人,真是牛逼
還有一個bug,當出現六子連贏的時候,由于在遍歷k的時候匹配到兩次贏法數組,所以會alert兩次“我贏了”
解決這個bug的辦法是,當出現“k==5”的時候,直接return,跳出當前循環:
if(myWin[k]==5&amp;&amp;me){
window.alert(&quot;你贏了&quot;)
over=true
return
}
應該加一個是否為me的判斷:
for (var k = 0; k &lt; count; k++) {
if (win[i][j][k]) {
myWin[k]++;
computerWin[k]=6;
if(myWin[k]==5&amp;&amp;me){
window.alert(&quot;你贏了&quot;)
over=true
}
}
}

執行完遍歷之后再加上:

me=!me
//斜線
for (var i = 14; i &gt; 3; i--) {
for (var j = 0; j &lt; 11; j++) {
for (var k = 0; k &lt; 5; k++) {
win[i-k][j+k][count]=true;
}
count++
}
}
// 反斜線
for (var i = 0; i &lt; 11; i++) {
for (var j = 0; j &lt;11; j++) {
for (var k = 0; k &lt; 5; k++) {
win[i+k][j+k][count]=true;
}
count++
}
}
// 橫向
for (var i = 0; i &lt; 11; i++) {
for (var j = 0; j &lt; 15; j++) {
for (var k = 0; k &lt; 5; k++) {
win[i+k][j][count]=true;
}
count++
}
}
// 縱向
for (var i = 0; i &lt; 15; i++) {
for (var j = 0; j &lt; 11; j++) {
for (var k = 0; k &lt; 5; k++) {
win[i][j+k][count]=true;
}
count++
}
}
課程須知
本課程是前端高級課程 1、具備算法基礎
老師告訴你能學到什么?
1、五子棋AI的運行原理 2、五子棋AI使用到的數據結構 3、編程實現五子棋AI

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消