我做了一个tic tac toe A.I.鉴于每个董事会成员国,我的A.I.将返回1个准确移动的地方。 (即使移动同样正确,每次选择相同的移动,也不会选择随机移动)
我还创建了一个函数,循环使用A.I。
进行所有可能的播放所以它是一个递归函数,让A.I.为一个给定的棋盘移动,然后让另一个游戏进行所有可能的移动,并在每个可能的移动中使用新的棋盘自己调用递归函数。
我这样做的时候A.I先行,而另一个先行......然后将它们加在一起。我结束了418次可能的胜利和115次可能的关系,以及0次可能的失败。
但现在我的问题是,如何最大限度地赢得胜利?我需要将这个统计数据与某些东西进行比较,但我无法弄清楚要将它与之进行比较。
答案 0 :(得分:5)
您是否阅读过维基百科上的文章? link
终端位置数
当仅考虑电路板的状态时,并在考虑电路板对称性(即旋转和反射)后,只有138个端子板位置。假设X每次都做出第一步:
可能的游戏数量
如果不考虑对称性,可以手动确定可能的游戏数量,确切的公式可以导致255,168种可能的游戏。假设X每次都做出第一步:
您可以从第一段生成138个终端板位置
或
Yo可能会对随机字段进行足够的测试,并将结果与此处的统计信息进行比较link
Win in 5 moves 1440 0.6%
Win in 6 moves 5328 2.1%
Win in 7 moves 47952 18.8%
Win in 8 moves 72576 28.4%
Win in 9 moves 81792 32.1%
Draw 46080 18.1%
Total 255168 100.0%
答案 1 :(得分:0)
你实际上可以强制游戏,并证明每次有获胜策略,你的A.I.选择正确的举动。然后,你可以证明每个位置,你的A.I.选择最大化获胜策略机会的举动,假设其他玩家正在随机游戏。没有那么多的可能性,所以你应该能够消除所有这些。
通过假设其他玩家实际上有点智能,例如,你也可以显着减少可能性的空间。总是试图阻止一次立即获胜的举动。
答案 2 :(得分:0)
akaRem回答的一个问题是,最佳玩家不应该看起来像整体分布。例如,我刚写的一个玩家大约90%的时间会赢得一个随机玩的人,并且有10%的时间都会打结。如果你有两个玩家互相攻击,你应该只期望akaRem的统计数据匹配。两个最佳球员总能打成平局。