作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了一个井字游戏 A.I.给定每个棋盘状态,我的 A.I.将返回 1 个要移动的确切位置。我还制作了一个循环播放所有可能的 A.I. 游戏的函数。
所以这是一个递归函数,让 A.I.为给定的棋盘走一步,然后让另一个棋盘走所有可能的棋步,并为每个可能的棋盘调用其自身的递归函数。
当 A.I 先走时,我会这样做,当另一个先走时...然后将它们加在一起。我最终有 418 次可能获胜和 115 次可能平局,以及 0 次可能失败。
但现在我的问题是,如何最大限度地增加获胜次数?我需要将此统计数据与某些内容进行比较,但我不知道要将其与什么进行比较。
最佳答案
我的感觉是您引用的统计数据已经很不错了。两个专业的井字棋玩家总是以平局结束,如果你的对手知道如何玩游戏,就没有办法强制获胜。
更新
可能有一种更优雅的方法来证明您的人工智能的正确性,但最直接的方法是蛮力法。只需将所有可能的棋盘位置枚举为一棵博弈树,并修剪直接导致失败的分支。然后,对于树中的每个分支,您可以计算出跟随该分支获胜的概率。然后你只需要测试你的 A.I.在每个棋盘位置上,确保它选择获胜概率最高的分支。
关于c# - 我如何创建一个测试来查看我的 A.I.是完美的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667025/
我是一名优秀的程序员,十分优秀!