Java Android App – 德州扑克的简单 AI

各位能否为我指明一个方向。我需要在 20 多周的时间里,用 Java 为 Android 手机设计和编写一个德州扑克游戏,作为大学项目。它应该包含与你对战或互相博弈的 AI 对手。它们应该能够通过一段时间的学习,掌握哪些策略最有效,例如保守、虚张声势等。我即将毕业,不想把事情搞得太复杂,我只需要一个简单、易用但有效的 AI 系统,可以在小型设备上运行,并且具有一定的挑战性。我研究了很多关于可用可能性的理论和文章(包括阿尔伯塔大学的),但我并不打算开发一个世界顶级的 AI,只是一个简单的 AI。一旦解决了这个问题,我就可以更快地专注于游戏 GUI 的开发了 :)。有什么想法吗?

提前感谢大家的反馈!


回答:

我上学期也做了一个类似的应用程序,作为 Java 项目。

让 AI 根据自己的牌来决定下注,而不是基于它(或其他玩家)的可能性。用坏牌弃牌,用好牌过牌/跟注,用极好的牌加注。你的 AI 玩家应该能够识别什么时候他们有一对/三条/葫芦。它们愚蠢的地方在于,它们可能会扔掉四张同花色的牌,而不等待同花听牌,或者扔掉一个极好的顺子听牌。电脑也没有虚张声势的概念,不会被大额的下注吓倒。当你了解 AI 如何做出决策时,很容易击败它。

编辑:

AI 的问题在于,“听起来很简单”和“确实很简单”可能是非常不同的事情。我很确定我研究了同一类型的程序(阿尔伯塔大学 等)大约一周的时间,但我们最终可能还是自己做的。我们(四个人)在 4 周内完成了我们的项目,所以 20 多周的时间应该完全可行。即使它没有使用相同的编程语言,我还是使用了 PokerTH 作为我想要模拟的最终结果的黄金典范。

在评分结束后,我们以学术自由许可证发布了我们的项目,作为 fvtctxholdem on SourceForge(源代码可在这里找到,修订历史可在这里找到),所以如果有任何代码有用,请随意使用,只要你给予适当的署名即可。我们的项目是纯命令行界面,所以你不会在这里找到任何感兴趣的图形。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注