Java Android 应用程序 - 德州扑克的简单 AI

标签 java android artificial-intelligence

谁能指出我在这方面的正确方向。我有 20 多个星期的时间用 Java 为大学项目的 Android 手机设计和编码德州扑克游戏。它应该包括与您一起玩或只与自己对战的 AI 对手。他们应该能够了解在一段时间内什么策略最有效,保守的,虚张声势的等等。我在最后一年,我不想让它太复杂,我只需要一个简单、容易但有效的人工智能系统可以在小型设备上播放并且相当具有挑战性。我看过很多关于可用可能性的理论和文章(包括阿尔伯塔大学),但我不打算拥有一个世界领先的人工智能,只是一个简单的人工智能。一旦解决了这个问题,我就可以更快地专注于游戏图形用户界面 :)。有什么想法吗?

提前感谢您的任何反馈!

最佳答案

我上学期做了一个类似 Java 项目的应用。

让人工智能根据自己的牌来决定赌注,而不是根据它(或其他玩家)的可能性。 用坏牌弃牌,用好牌过牌/看牌,用好牌加注。 你的 AI 玩家应该能够理解他们什么时候有一对/三个同类/葫芦。他们愚蠢的地方在于他们可能扔掉四张同花牌而不是等待同花听牌,或者扔掉一个很好的顺子听牌。电脑也没有虚张声势的概念,不会被大赌注吓跑。当您知道 AI 是如何做出决定时,就很容易打败它。

编辑:

AI 的问题在于“听起来很简单”和“很简单”可能是截然不同的事情。我很确定我研究了相同类型的程序( Univeristy of Alberta 等)大约一个星期,但我们可能最终推出了自己的程序。我们(四个人)在 4 周内完成了我们的项目,因此 20 周以上应该是完全可行的。尽管它不使用相同的编程语言,但我使用了 PokerTH作为我模拟最终结果的黄金范例。

我们将项目发布为 fvtctxholdem on SourceForge在它被分级后,在学术免费许可证下,(来源可用 here,修订历史 here)所以如果有任何有用的代码,只要你给它适当的归属,就​​可以随意使用它。我们的项目只是命令行,因此您不会在这里找到任何感兴趣的图形。

关于Java Android 应用程序 - 德州扑克的简单 AI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3961125/

相关文章:

java - Solr 。如何连接两个单独的查询

android - 单击按钮时显示和隐藏下拉列表?

python - 实现极小极大算法时的递归问题

language-agnostic - 液态状态机的实现

algorithm - 构建反向语言词典

java - Netty NIO channel 是否可写但未连接?

java - 在 Java 中使用 '=' 运算符设置自定义类对象的值

java - 为什么很多 Java Stream 接口(interface)方法在参数中使用下界通配符而不是泛型类型?

android - 将保留的 fragment 理解为任务持有者

android - 带有两个可按下部分的 ListView 项目布局出现奇怪的视觉问题