我正在尝试通过使用乌龟在 Repl.it 上绘制棋盘来制作井字游戏。效率不是很高,但我正在尝试开发人工智能,而不必对每种可能的电路板组合进行编程。
我对 python 还很陌生;我正在学校上 AP ComSciPri 类(class)。我在函数和计算等方面学到了很多基础知识,但从总体上看我错过了很多东西。除了创建分支来平局每场比赛之外,还有其他方法可以创建一个过程来执行此操作吗?
不确定这是否有帮助,但是:
gameArray = [["-","-","-"],["-","-","-"],["-","-","-"]]
uArray = [["0","0","0"],["0","0","0"],["0","0","0"]]
cpuArray = [["0","0","0"],["0","0","0"],["0","0","0"]]
winningArrays = [
[["X","X","X"],["0","0","0"],["0","0","0"]],
[["0","0","0"],["X","X","X"],["0","0","0"]],
[["0","0","0"],["0","0","0"],["X","X","X"]],
[["X","0","0"],["X","0","0"],["X","0","0"]],
[["0","X","0"],["0","X","0"],["0","X","0"]],
[["0","0","X"],["0","0","X"],["0","0","X"]],
[["X","0","0"],["0","X","0"],["0","0","X"]],
[["0","0","X"],["0","X","0"],["X","0","0"]]]
<小时/>
我使用海龟绘制棋盘并放置印章,以及操作调试板(gameArray、uArray、cpuArray)。
<小时/>如果用户输入== 1:
spaceList.remove(1)
turt1.shape("circle")
turt1.color("black")
turt1.penup()
turt1.goto(-75,-25)
turt1.stamp()
gameArray[2][0] = "U"
uArray[2][0] = "X"
<小时/>
我将链接我在hastebin中的内容。大多数情况下,我想要一些我可以研究的信息,或者是否有人可以给我任何建议。提前致谢!
最佳答案
人工智能需要的最重要的一点是衡量董事会状态的好坏。作为一个非常简单的例子,假设衡量标准是棋盘是否处于获胜状态(连续三个 X)。然后让人工智能检查它可以制作的所有不同的棋盘(最多 9 个),如果其中一个获胜,我们就选择那个!否则就随机选择一些东西。这当然应该比随机机会更好,并且可能是您的程序的一个很好的“简单模式”计算机播放器。如果您可以创建一个更复杂的函数,并且棋盘状态更好,那么您就可以创建一个更复杂的计算机播放器。
关于python - 带有多维数组和海龟的 Tic-Tac-Toe AI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55579015/