在井字游戏中,对AI实施“难度”级别的有效方法是什么?

时间:2019-05-29 20:34:22

标签: java android artificial-intelligence minimax

我正在开发一个支持1个或2个播放器的简单的Tic Tac Toe android应用。我已经为1个玩家模式实现了AI,该模式使用minimax算法完美发挥(获胜或平局)。我希望用户可以在容易,中等和困难的情况之间进行切换。我可以通过哪些方式实现这一目标?

我的第一个想法是在随机移动或完美移动之间随机选择。做出完美举动的可能性在中等情况下为60%,在简单情况下为10%。还有其他想法或修改吗?

1 个答案:

答案 0 :(得分:3)

您可以通过几种方法来调整强度,尽管对于像井字游戏这样简单的游戏,粒度级别并不理想。

  1. 限制您的搜索深度。例如:如果AI仅向前看1-2转,则可以使用一种策略将其陷入不可避免的失败状态,而更深的树则可以很好地预测以应对每种策略,并始终强制平局。
  2. 削弱评估功能。要在井字游戏中进行有意义的操作有点困难,但是您可能可以提出一些建议。如果AI低估或高估某些东西,它将表现得更糟。
  3. 添加噪音。给您的程序一个随机的机会来选择次佳的动作。
  4. 偏见是次优决策。例如,使AI不太可能率先出现角点。

您将需要进行实验以找出正确的感觉。