各位能否为我指明一个方向。我需要在 20 多周的时间里,用 Java 为 Android 手机设计和编写一个德州扑克游戏,作为大学项目。它应该包含与你对战或互相博弈的 AI 对手。它们应该能够通过一段时间的学习,掌握哪些策略最有效,例如保守、虚张声势等。我即将毕业,不想把事情搞得太复杂,我只需要一个简单、易用但有效的 AI 系统,可以在小型设备上运行,并且具有一定的挑战性。我研究了很多关于可用可能性的理论和文章(包括阿尔伯塔大学的),但我并不打算开发一个世界顶级的 AI,只是一个简单的 AI。一旦解决了这个问题,我就可以更快地专注于游戏 GUI 的开发了 :)。有什么想法吗?
提前感谢大家的反馈!
回答:
我上学期也做了一个类似的应用程序,作为 Java 项目。
让 AI 根据自己的牌来决定下注,而不是基于它(或其他玩家)的可能性。用坏牌弃牌,用好牌过牌/跟注,用极好的牌加注。你的 AI 玩家应该能够识别什么时候他们有一对/三条/葫芦。它们愚蠢的地方在于,它们可能会扔掉四张同花色的牌,而不等待同花听牌,或者扔掉一个极好的顺子听牌。电脑也没有虚张声势的概念,不会被大额的下注吓倒。当你了解 AI 如何做出决策时,很容易击败它。
编辑:
AI 的问题在于,“听起来很简单”和“确实很简单”可能是非常不同的事情。我很确定我研究了同一类型的程序(阿尔伯塔大学 等)大约一周的时间,但我们最终可能还是自己做的。我们(四个人)在 4 周内完成了我们的项目,所以 20 多周的时间应该完全可行。即使它没有使用相同的编程语言,我还是使用了 PokerTH 作为我想要模拟的最终结果的黄金典范。
在评分结束后,我们以学术自由许可证发布了我们的项目,作为 fvtctxholdem on SourceForge(源代码可在这里找到,修订历史可在这里找到),所以如果有任何代码有用,请随意使用,只要你给予适当的署名即可。我们的项目是纯命令行界面,所以你不会在这里找到任何感兴趣的图形。