課程
/前端開發(fā)
/JavaScript
/JS實現(xiàn)人機大戰(zhàn)之五子棋(AI篇)
求源碼啊,,沒找出來問題。。
2018-02-16
源自:JS實現(xiàn)人機大戰(zhàn)之五子棋(AI篇) 2-5
正在回答
let?chessBoard?=?[]; let?me?=?true; let?over?=?false; let?wins?=?[]; let?myWin?=?[]; var?computerWin?=?[] for?(var?i?=?0;?i?<?15;?i++)?{ ????chessBoard[i]?=?[] ????for?(var?j?=?0;?j?<?15;?j++)?{ ????????chessBoard[i][j]?=?0 ????} } for?(var?i?=?0;?i?<?15;?i++)?{ ????wins[i]?=?[] ????for?(var?j?=?0;?j?<?15;?j++)?{ ????????wins[i][j]?=?[] ????} } var?count?=?0 for?(var?i?=?0;?i?<?15;?i++)?{ ????for?(var?j?=?0;?j?<?11;?j++)?{ ????????for?(k?=?0;?k?<?5;?k++)?{ ????????????wins[i][j?+?k][count]?=?true ????????} ????????count++ ????} } for?(var?i?=?0;?i?<?15;?i++)?{ ????for?(var?j?=?0;?j?<?11;?j++)?{ ????????for?(k?=?0;?k?<?5;?k++)?{ ????????????wins[j?+?k][i][count]?=?true ????????} ????????count++ ????} } for?(var?i?=?0;?i?<?11;?i++)?{ ????for?(var?j?=?0;?j?<?11;?j++)?{ ????????for?(k?=?0;?k?<?5;?k++)?{ ????????????wins[i?+?k][j?+?k][count]?=?true ????????} ????????count++ ????} } for?(var?i?=?0;?i?<?11;?i++)?{ ????for?(var?j?=?14;?j?>?3;?j--)?{ ????????for?(k?=?0;?k?<?5;?k++)?{ ????????????wins[i?+?k][j?-?k][count]?=?true ????????} ????????count++ ????} } console.log(count) for?(var?i?=?0;?i?<?count;?i++)?{ ????myWin[i]?=?0 ????computerWin[i]?=?0 } var?chess?=?document.getElementById('chess') var?context?=?chess.getContext('2d') context.strokeStyle?=?'#BFBFBF' var?logo?=?new?Image() logo.src?=?"?"?//image?path window.onload?=?function?()?{ ????//?context.drawImage(null,?0,?0,?450,?450) ????drawChessBoard() ????//?oneStep(0,?0,?true) ????//?oneStep(1,?1,?false) ????//?context.beginPath() ????//?context.arc(200,200,100,0,2*Math.PI) ????//?context.closePath() ????//?var?gradient?=?context.createRadialGradient(200,200,50,200,200,20) ????//?gradient.addColorStop(0,'#0A0A0A') ????//?gradient.addColorStop(1,'#636766') ????//?context.fillStyle?=?gradient ????//?context.fill() } var?drawChessBoard?=?function?()?{ ????for?(var?i?=?0;?i?<?15;?i++)?{ ????????context.moveTo(15?+?i?*?30,?15)?//15 ????????context.lineTo(15?+?i?*?30,?435)?//435 ????????context.stroke() ????????context.moveTo(15,?15?+?i?*?30)?//15 ????????context.lineTo(435,?15?+?i?*?30)?//435 ????????context.stroke() ????} } // //?context.moveTo(0,0) //?context.lineTo(450,450) //?context.stroke() var?oneStep?=?function?(i,?j,?me)?{ ????context.beginPath() ????context.arc(15?+?i?*?30,?15?+?j?*?30,?13,?0,?2?*?Math.PI) ????context.closePath() ????var?gradient?=?context.createRadialGradient(15?+?i?*?30?+?2,?15?+?j?*?30?-?2,?13,?15?+?i?*?30,?15?+?j?*?30,?0) ????if?(me)?{ ????????gradient.addColorStop(0,?'#0A0A0A') ????????gradient.addColorStop(1,?'#636766') ????}?else?{ ????????gradient.addColorStop(0,?'#D1D1D1') ????????gradient.addColorStop(1,?'#F9F9F9') ????} ????context.fillStyle?=?gradient ????context.fill() } chess.onclick?=?function?(e)?{ ????if?(over)?{ ????????return ????} ????if?(!me)?{ ????????return ????} ????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)?{ ????????oneStep(i,?j,?me) ????????//?if?(me)?{ ????????chessBoard[i][j]?=?1 ????????//?}?else?{ ????????//?????chessBoard[i][j]?=?2 ????????//?} ????????for?(var?k?=?0;?k?<?count;?k++)?{ ????????????if?(wins[i][j][k])?{ ????????????????myWin[k]++ ????????????????computerWin[k]?=?6 ????????????????if?(myWin[k]?===?5)?{ ????????????????????window.alert('你贏了') ????????????????????over?=?true ????????????????} ????????????} ????????} ????????if?(!over)?{ ????????????me?=?!me ????????????computerAI() ????????} ????} ????//?oneStep(i,j,me) } var?computerAI?=?function?()?{ ????var?myScore?=?[] ????var?computerScore?=?[] ????var?max?=?0 ????var?u?=?0 ????var?v?=?0 ????for?(var?i?=?0;?i?<?15;?i++)?{ ????????myScore[i]?=?[] ????????computerScore[i]?=?[] ????????for?(var?j?=?0;?j?<?15;?j++)?{ ????????????myScore[i][j]?=?0 ????????????computerScore[i][j]?=?0 ????????} ????} ????for?(var?i?=?0;?i?<?15;?i++)?{ ????????for?(var?j?=?0;?j?<?15;?j++)?{ ????????????if?(chessBoard[i][j]?===?0)?{ ????????????????for?(var?k?=?0;?k?<?count;?k++)?{ ????????????????????if?(wins[i][j][k])?{ ????????????????????????if?(wins[k]?===?1)?{ ????????????????????????????myScore[i][j]?+=?200 ????????????????????????}?else?if?(myWin[k]?===?2)?{ ????????????????????????????myScore[i][j]?+=?400 ????????????????????????}?else?if?(myWin[k]?===?3)?{ ????????????????????????????myScore[i][j]?+=?2000 ????????????????????????}?else?if?(myWin[k]?===?4)?{ ????????????????????????????myScore[i][j]?+=?10000 ????????????????????????} ????????????????????????if?(computerWin[k]?===?1)?{ ????????????????????????????computerScore[i][j]?+=?220 ????????????????????????}?else?if?(computerWin[k]?===?2)?{ ????????????????????????????computerScore[i][j]?+=?420 ????????????????????????}?else?if?(computerWin[k]?===?3)?{ ????????????????????????????computerScore[i][j]?+=?2100 ????????????????????????}?else?if?(computerWin[k]?===?4)?{ ????????????????????????????computerScore[i][j]?+=?20000 ????????????????????????} ????????????????????} ????????????????} ????????????????if?(myScore[i][j]?>?max)?{ ????????????????????max?=?myScore[i][j] ????????????????????u?=?i ????????????????????v?=?j ????????????????}?else?if?(myScore[i][j]?===?max)?{ ????????????????????if?(computerScore[i][j]?>?computerScore[u][v])?{ ????????????????????????u?=?i ????????????????????????v?=?j ????????????????????} ????????????????} ????????????????if?(computerScore[i][j]?>?max)?{ ????????????????????max?=?computerScore[i][j] ????????????????????u?=?i ????????????????????v?=?j ????????????????}?else?if?(computerScore[i][j]?>?max)?{ ????????????????????if?(computerScore[i][j]?>?computerScore[u][v])?{ ????????????????????????u?=?i ????????????????????????v?=?j ????????????????????} ????????????????} ????????????} ????????} ????} ????oneStep(u,?v,?false) ????chessBoard[u][v]?=?2 ????for?(var?k?=?0;?k?<?count;?k++)?{ ????????if?(wins[u][v][k])?{ ????????????computerWin[k]++ ????????????myWin[k]?=?6 ????????????if?(computerWin[k]?===?5)?{ ????????????????window.alert('AI贏了') ????????????????over?=?true ????????????} ????????} ????} ????if?(!over)?{ ????????me?=?!me ????????//?computerAI() ????} }
https://gitee.com/god_wei/test/tree/master/%E5%89%8D%E7%AB%AF%E9%A1%B9%E7%9B%AE/JS%E5%AE%9E%E7%8E%B0%E4%BA%BA%E6%9C%BA%E5%A4%A7%E6%88%98%E4%B9%8B%E4%BA%94%E5%AD%90%E6%A3%8B%E2%80%94%E6%85%95%E8%AF%BE%E7%BD%91
舉報
"AlphaGO"我要和你下五子棋,教程帶你實現(xiàn)五子棋AI
3 回答求源碼,源碼
1 回答那里有源碼
2 回答代碼哪里有問題???
2 回答求助求助aaa
3 回答求助,哪位大神能看出問題啊,我點擊第一下都不出子
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-08-18
2018-03-16
https://gitee.com/god_wei/test/tree/master/%E5%89%8D%E7%AB%AF%E9%A1%B9%E7%9B%AE/JS%E5%AE%9E%E7%8E%B0%E4%BA%BA%E6%9C%BA%E5%A4%A7%E6%88%98%E4%B9%8B%E4%BA%94%E5%AD%90%E6%A3%8B%E2%80%94%E6%85%95%E8%AF%BE%E7%BD%91