如何测试我的Tic Tac Toe AI是否完美?

Tho*_*mas 2 python recursion artificial-intelligence greedy

我做了一个tic tac toe AI鉴于每个板状态,我的AI将返回一个确切的位置移动.(即使移动同样正确,每次选择相同的移动,也不会选择随机移动)

我还创建了一个函数,循环使用AI进行的所有可能的播放

因此它是一个递归函数,让AI为给定的板移动,然后让另一个游戏进行所有可能的移动,并在每个可能的移动中使用新板自己调用递归函数.

我这样做是因为人工智能首先出现,而当另一个首先出现时...并将它们加在一起.我最终获得了418次可能的胜利和115种可能的关系,以及0次可能的失败.

但现在我的问题是,如何最大限度地赢得胜利?我需要将这个统计数据与某些东西进行比较,但我无法弄清楚要将它与之进行比较.

aka*_*Rem 5

你读过维基百科上的文章吗?链接

终端位置数量

当仅考虑电路板的状态时,并且在考虑电路板对称性(即旋转和反射)之后,仅有138个端子板位置.假设X每次都做出第一步:

  • (X)赢得91个独特的位置
  • (O)赢得44个独特的位置
  • 绘制了3个独特的位置

可能的游戏数量

在不考虑对称性的情况下,可以通过精确的公式手动确定可能的游戏数量,这可以导致255,168种可能的游戏.假设X每次都做出第一步:

  • 通过(X)赢得131,184个完成的比赛
  • 赢得了77,904场比赛的胜利(O)
  • 绘制了46,080个完成的游戏

您可以从第一段生成138个终端板位置

要么

哟可以随机领域运行足够的测试和结果与统计数据从这里比较链接

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%
Run Code Online (Sandbox Code Playgroud)