话不多说直接上运行截图:
黑棋是玩家的位置,红色方是电脑。电脑会根据当前棋盘的情况选择一个对自己有利却对玩家不利的情况。
算法可以实现电脑胜利,或者电脑和玩家平局。
代码如下:
井字棋AI .title { text-align: center; } .chess { display: block; margin: 50px auto; box-shadow: 5px 5px 5px #B9B9B9, -2px -2px 2px #EFEFEF; cursor: pointer; } div { text-align: center; } .restart { padding: 10px 20px; background-color: #EE82EE; border-radius: 5px; color: white; cursor: pointer; } --井字棋-- 重新开始
其中,代码的242行和244行中的
context.beginPath(); context.arc(85 + i * 140, 85 + j * 140, 40, 0, 2 * Math.PI); //画圆 context.closePath();
分别是落笔和抬笔的操作。这样可以避免canvas上画圆时路径相连的问题。
极大极小值的代码借鉴了一篇c语言的博客。链接:
参考链接



