问题标签 [poker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
129 浏览

security - Now.js + Express -> 断开连接问题

这是所有节点大师的问题:

我是使用 NowJs 和 Express 的新手,我正在建立一个扑克网站。我遇到的主要问题是:

当用户创建游戏时,打开一个新窗口并关闭它。关闭第二个窗口时,会触发 Disconnect 事件,将用户与第一个窗口断开连接

我怎样才能避免这个问题?必须有一种解决方法另外,我正确地使用 NodeJs 和 Express 作为将存储信用卡信息的网站的基础?如果没有,建立扑克网站的最佳方式是什么?

非常感谢您的帮助

0 投票
0 回答
1342 浏览

bayesian - 贝叶斯扑克:如何找到使用组合学找不到的分布

这是我关于 stackoverflow 的第一个问题,也是我第一次实现 Baysian 网络,所以我会提前为我犯的任何新手错误道歉。

我项目的目标是实现一个进行贝叶斯推理的扑克玩家。由 Kevin Korb 领导的澳大利亚莫纳什大学的一个小组在这方面做了一些工作,我用来参考。你可以在这里找到他们的作品:

第一个参考书,作为一本书,更有帮助和详细(参见第 5.5 章和第 11 章的扑克)。我正在使用名为 Leduc Hold'em 的简化版德州扑克开始。

Leduc Hold'em 是一款两人扑克游戏。Leduc Hold'em 中使用的牌组包含六张牌、两张 J、两张 Q 和两张 K,并且在玩一手牌之前要洗牌。在一手牌开始时,每位玩家向底池支付一个筹码赌注并获得一张私人牌。然后从玩家一开始进行一轮下注。在一轮下注之后,从牌堆中显示一张公共牌,双方玩家都用它来构组自己的手牌。这张牌称为翻牌。翻牌后发生另一轮下注,再次从玩家一开始,然后进行摊牌。在摊牌时,如果任一玩家将他们的私人牌与公共牌配对,他们将赢得底池中的所有筹码。如果没有玩家配对,则拥有较高牌的玩家被宣布为获胜者。

每一轮投注都遵循相同的格式。第一个行动的玩家可以选择过牌或下注。下注时,玩家将筹码添加到底池中,并且行动转移给其他玩家。当玩家面临下注时,他们可以选择弃牌、跟注或加注。弃牌时,玩家放弃这手牌,底池中的所有钱都分配给对方玩家。跟注时,玩家将足够的筹码放入底池以匹配所面对的下注,下注回合结束。加注时,玩家必须将比当前所面对的赌注更多的筹码投入底池,并将行动转移给对方玩家。如果第一个玩家最初过牌,则第二个玩家可以过牌以结束下注轮或下注。在 Leduc Hold'em 中,每轮有一次下注和一次加注的限制。下注和加注的大小是固定的。

如果您查看 pg.185,图 5.14 中的第 5.5.2.1 节,则有一个用于扑克的贝叶斯网络图。这与我在项目中使用的基本相同,但假设在 Leduc Hold'em 中没有上牌,则上牌的两个相应节点不适用于它。我能够计算节点对(BPP_Win,BPP_Fin),(BPP_Win,OPP_Fin),(OPP_Fin,BPP_Fin),(OPP_Fin,OPP_Curr)和(BPP_Fin,BPP_Curr)之间的联合概率表,但我不知道如何计算 (OPP_Curr, OPP_Action) 的联合概率。据我了解,某种采样技术是必要的。

作为一个后续问题,如果我能够计算这个联合概率,那么我应该能够通过使用 BP 并将联合概率作为因素来计算给定我当前卡的 BPP_win 的边际概率,对吗?

0 投票
2 回答
287 浏览

java - 如何从卡片列表中生成所有唯一卡片对?

我正在实施一个手牌强度评估器,它是在处理一手牌和翻牌后评估剩余 47 张牌中所有可能的对子。

我已经实现了评估器,但我错过了所有可能的比较组合。我很想为 Hand 创建一个类,它由两张卡片组成,并将每个组合存储在一个集合 HashSet 中。我应该选择哪种数据结构?如果 HashSet 是最好的,那么我如何强制 Hand 的每个实例化都是唯一的?

0 投票
4 回答
2671 浏览

c++ - 为德州扑克编写逻辑子底池系统

编辑似乎我对游戏实际运作方式得到了不同的反应,并且在阅读了官方规则并与众多扑克伙伴交谈后,我想我自己也不知道规则。任何澄清将不胜感激。

我正在使用 MSVC++ 2010 Express 开发一个小型扑克游戏,并且一直在尝试想出一种方法来编写子底池系统。出于某种原因,我无法理解它应该如何工作,并且想知道 SO 是否可以发布一些方法来解决它。这是一种特殊情况,在德州扑克游戏中很可能会发生。

情况:

玩家 A 有 50 美元的筹码首先行动并决定全押。玩家 B 加注到 150 美元。玩家 C 只有价值 70 美元的筹码并决定全押。玩家 D 只有 20 美元并全押。现在,我如何设计一个子底池机制来跟踪所有这些。

据我了解,会发生什么:

玩家 A 用 50 美元创造主底池。你把 B 和 C 的 50 美元加起来,使主底池变成 150 美元。然后,您将玩家 B 剩余的 100 美元分成 80 美元和 20 美元。然后你为玩家 B 和 C 做一个价值 40 美元的子底池(玩家 C 从 70 美元中剩下的),然后你将玩家 B 的 80 美元返还给玩家 B,因为没有人可以覆盖它。玩家 D 的 20 美元赌注进入玩家 B,Cs 的 40 美元子底池现在价值 60 美元。* (或者这不会被添加?它不会被添加到任何投注中,因为它无法覆盖 50 美元的主底池,如果是这样,那么它们不会被添加到任何投注中*

现在,当它下降到评估时。如果玩家 A 赢了,他从玩家 A、B 和 C 那里赢得了 150 美元。接下来,玩家 B、C 和 D 用他们价值 60 美元的子底池继续比赛。

如果玩家 B 赢了,他就赢了一切。

如果玩家 C 赢了,他从玩家 A、B 和 C 那里赢得 150 美元。然后他向玩家 B 和 D 挑战 60 美元。

玩家 D 只能赢得 60 美元,而当玩家 A、B 和 C 的底池跌到这么远时,已经有人赢得了玩家 A、B 和 C 的底池。(取决于这是否被添加到 B 和 C 的底池中,因为它不包括主要的 50 美元下注)

一切都应该这样吗?我很难弄清楚如何跟踪每个赌注和子底池。任何想法或实现它的合乎逻辑的方法都会有很大帮助。感谢您的时间。:-)

我在考虑让每个赌注都成为一个唯一的 id,或者每轮都有一个 id,并将每个赌注添加到要评估的数组中,该数组也指向包含玩家信息的容器。我还必须考虑到一些玩家可能在子底池中并且已经在手牌并且弃牌,这意味着我也必须跟踪这一点。

0 投票
1 回答
467 浏览

android - 比较骰子游戏中的数组

* Coded Edited with Fix *我发现一个开源项目有一些错误(到目前为止我已经修复了几个),但这个让我很难过。我要解决的问题...如果我有 3 组对(isThreePair)并且它也是一种 4(例如:4ea - 3's 和 2ea 4's),它总是选择一种 4(isFourOfAKind ),我应该可以选择任何一个。有人可以告诉我代码有什么问题。

我的问题在代码审查中得到了回答。上述代码反映了工作代码。但这里是需要修改的部分。

0 投票
2 回答
500 浏览

java - Java 排列

我正在尝试编写一个程序来跟踪每个玩家在扑克中的筹码数量。这不是扑克游戏,只是一个可以保持每个玩家拥有的筹码数量的程序。但是,我希望能够“下注”“跟注”“弃牌”等并能够自动跟踪。

我的问题是,有没有办法在不写每个排列的情况下调整玩家数量?目前,它只能跟踪 2 个人。我将如何使它理论上可以跟踪无限数量的人?我已经写了所有可能的排列,我知道它不是很有效,所以有没有更有效的编码方式?

我是一个java noob,所以任何帮助将不胜感激。

}

0 投票
4 回答
262 浏览

java - 在 Java 中创建数组数组

假设我有一个 Player 类,例如:

以下代码对于创建玩家数组是否正确?

如果是这样,我将如何为每个玩家分配姓名、筹码金额和下注值?以后如何在代码中访问和更改它们?

编辑:将播放器作为对象或数组(名称,筹码,betVal)以便以后访问它会更容易吗?

0 投票
4 回答
3839 浏览

php - 如何在我的扑克游戏中检查满堂彩?

问题:为我的网络编程课创建一个视频扑克游戏。

除了我在下面的逻辑中遗漏了一些东西外,我还有其他一切工作。当我只有 3 个同类时,满屋返回 true。

我知道我对 3 种此类作品的逻辑。但是,当比较未涉及 3 of a Kind 的两张牌时,就会出现问题。

这是代码:

0 投票
1 回答
1430 浏览

java - 扑克手 - 用 Ja​​va 解析日志文件

您好,我正在为大学进行 Java 项目,我应该在其中分析扑克牌。我在 txt 日志文件中发现了一些扑克牌。

它们通常看起来像这样:

我的问题是我不确定如何继续解析日志文件:我所拥有的唯一知识是“手动”逐行扫描特定字符或符号,但恐怕它需要详尽的错误处理。

所以我在徘徊是否有任何其他技术或更好的方法来解析这些扑克牌?

非常感谢您的帮助

编辑:对不起“数据挖掘”,因为它不是问题的一部分。

EDIT2:我也在寻找一些与 C++ 相同的 Java 方法

例如:在 C++ 中读取 5 个字符/直到 de # 符号将是:myfile.getline(store_in_this_var,5,'#'),你能建议我一些 Java 方法来做同样的事情吗?

0 投票
2 回答
24921 浏览

java - 从一副牌中发牌的 Java 代码

我正在尝试编写一种方法来从甲板顶部移除指定数量的卡片并将它们作为数组返回。

这就是我到目前为止所做的。创建牌组的方法,复制牌组,返回数组中指定位置的牌的方法,返回牌组大小的方法,洗牌和切牌(不确定这些是正确的)。这是卡片类

Deck 方法是我需要帮助的方法