连接四个 AI — 与 Minimax 引擎对战
与真正的 AI 对手玩《四子棋》,对手会通过负最大和 alpha-beta 修剪来搜索游戏树,并以真正的中心重点位置启发式为后盾 - 选择您的颜色和难度,然后将棋盘放在动画棋盘上。
结果
这个四连人工智能是一个真正的基于搜索的对手,而不是一个脚本化或随机的机器人。选择以红色或黄色进行游戏(红色始终打开,如标准四子棋),选择难度,然后通过单击列或其上方的箭头开始掉落光盘。圆盘会向下移动到其着陆行,在各个方向(水平、垂直和两个对角线)立即检测到四排,并且一条简短的状态线始终会告诉您轮到谁或宣布获胜者。
AI 背后的引擎是带有 alpha-beta 修剪的负最大搜索,与经典棋盘游戏引擎使用的算法相同:它探索未来可能的移动树,让每一方都尝试最大化自己的结果,同时假设对手也打得很好,一旦找到更好的路线,就修剪掉无法改变结果的分支。由于四子棋只有七列可供选择,因此此搜索可以快速查看未来的几个棋步。它以迭代加深的方式运行——搜索一层,然后是两层,然后三层,依此类推——每次移动的时间预算很短(简单时大约四分之一秒,困难时大约一秒半),因此浏览器永远不会冻结等待移动。
当搜索无法在其深度内到达游戏结束时,将通过真实的位置评估启发式而不是猜测来判断移动:棋盘上每个可能的四排窗口都根据每种颜色已经占据它的数量来评分(空窗口一文不值,只有你的棋子的窗口在填满时更有价值,被两种颜色阻挡的窗口一文不值),并且中心列中的单元格更重要,因为它们参与了更多可能的行。简单和中等在得分几乎相同的动作中添加了一点受控随机性,因此人工智能感觉更加人性化和可击败; Hard 总是会下出最强的棋步。这是一个真正强大的极小极大对手,是根据真实的搜索和评估构建的——不是声称无与伦比或完美的游戏,也不是对任何东西的模拟:每一步都是上述算法的实际输出。