如何为Windows手机桌面游戏编写简单的AI?

Joa*_*nge 1 .net c# artificial-intelligence windows-phone-7

像这样的东西:

在此输入图像描述

我不知道如何为此编码,因为我只编写了非游戏应用程序.例如,如何确定玩家移动后的最佳动作?我不需要完美的动作,只需要足够的挑战.

我不知道是否必须扫描所有可能的动作等.在如图所示的游戏中,可能的动作数量非常有限,对吧?所以我可以全部计算出来.但我不确定哪一个会更好,等等.

Nov*_*vak 6

在像tic-tac-toe这样的小型简单游戏中,您可以构建一棵树,其中:

  • 每个节点都是一个板位
  • 每个叶子节点是一个完成的游戏,得分为+1是X胜,如果O获胜则为-1,抽奖为0
  • 每个子节点都是从其父节点合法移动的结果

然后X正在搜索最大化最小结果的移动,知道O将搜索(在他的后续转弯中)移动,这将最小化最大结果,知道X将搜索(在他随后转向那个)移动哪个...

这是minimax算法.

在Tic-Tac-Toe中,树只能获得9层深度,如果你想要光滑,你可以利用一些板对称性并保持计算和数据结构的可管理性.

请注意,对于更复杂的游戏,这将因某种原因而失败(国际象棋是确定性的,但是太大而无法处理这种方式;步步高需要概率技术等),但许多方法都是这个主题的变体.