问题标签 [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 投票
6 回答
44344 浏览

statistics - How do I programmatically calculate Poker Odds?

I'm trying to write a simple game/utility to calculate poker odds. I know there's plenty of resources that talk about the formulas to do so, but I guess I'm having trouble translating that to code. Particularly, I'm interested in Texas Hold-em ...

I understand that there are several different approaches, one being that you can calculate the odds that you will draw some hand based on the cards you can see. The other approach is calculating the odds that you will win a certain hand. The second approach seems much more complex as you'd have to enter more data (how many players, etc.)

I'm not asking that you write it for me, but some nudges in the right direction would help :-)

0 投票
5 回答
2362 浏览

c# - 使用 RegEx 获得扑克手分数

我正在用 C# 开发一个扑克游戏。目前我正在尝试使用RegEx. 我搜索字符串(由卡片花色和数字组成)并寻找花色或数字以匹配RegEx. 如果我得到 2 场比赛,那么球员有一对,3 场比赛他有 3 场同类。

我目前有 3 个类,一个 Card 类(带有数字和花色),一个 Deck 类(包含 52 张牌)和一个从洗好的牌堆中获得五张牌的 Hand 类。

甲板类有一个shuffleDeck();Hand 类具有计算分数的功能(在我使用 RegEx 的这些功能中)。

RegEx通过添加手的 5 个花色和数字来生成我使用的字符串。

这是一个好主意还是我应该以另一种方式来做,如果是这样,怎么做?

感谢您的帮助

PS。我是没有经验的程序员之一,想要使用新学的工具来处理所有事情

0 投票
5 回答
6150 浏览

c# - 设计模式:解析文本文件中相似但不同的模式

在此先感谢您的帮助。我想知道是否有(设计)模式可以应用于这个问题。

我希望从具有相似但不同格式的文本文件中解析、处理和提取值。

更具体地说,我正在构建一个处理引擎,它接受来自众多不同网站的在线扑克手牌历史文件,并解析出特定的数据字段(手牌#、日期时间、玩家)。我需要将文件解析为每种格式略有不同的逻辑,但提取值的处理将是相同的。

我的第一个想法是只创建一个接受每种文件类型的“模式”并相应地解析/处理的类。我确信有更好的解决方案。

谢谢!

奖励点: C# 中的任何特定实现提示。

0 投票
9 回答
29018 浏览

java - 建立一个德州扑克玩 AI..从头开始

我对用 Java 构建 Texas Hold 'Em AI 引擎很感兴趣。这是一个长期项目,我计划至少投资两年。我还在上大学,还没有建立任何雄心勃勃的东西,并且想要解决一个长期保持我兴趣的问题。我是人工智能领域的新手。从我在大学的数据结构课上,我知道了 BFS 和 DFS、回溯、DP、树、图等基本构建块。我正在学习正则表达式,为 SCJP 和 SCJD 学习,我很快就会学习(密集) 统计课程。

问题:

-我从哪里开始?我应该选择什么书?扑克游戏程序运行在什么样的人工智能上?我可以从哪个开源项目中获取页面?Java中有什么好的AI资源吗?我也有兴趣学习 Lisp,Jatha 好吗?

0 投票
10 回答
12972 浏览

java - 判断一手牌是否为顺子的函数?

对于家庭作业,我得到了一个 Card 类,其中列举了 Rank 和 Suit 的类型。我需要比较两手牌(每手是ArrayList5 张牌)并决定获胜者。

这个isStraight()功能真的很困扰我,因为我必须在 Ace 之后重新开始计数。例如,

女王、国王、王牌、二、三

还是算直的。编写此功能的最佳方法是什么?

如果有帮助,这是 Rank/Suit 枚举类型代码。

0 投票
8 回答
8544 浏览

java - 需要帮助确定扑克手(一对)

这只是代码的一部分,所以如果您看不到数组或其他任何东西,请不要介意。这个想法是我有 5 张牌,我想确定哪些是对子。有人明白我的意思吗?

0 投票
4 回答
959 浏览

ruby-on-rails - 在 Ruby 中解析(在 Rails 上)

我想编写一个 Rails 应用程序来帮助我进行在线扑克。我在 PokerStars 打牌,每手牌都有可用的文本数据。它的格式是这样的:

是否有任何用于 Ruby 的解析库,或者我必须手动和 hackily 执行此操作?

0 投票
4 回答
2064 浏览

algorithm - NP难?在线扑克合谋检测的算法复杂度?

对于一个拥有 1000 万玩家的在线扑克网站,描述合谋检测算法复杂性的最佳方式是什么?

假设(我认为这些假设没有太大区别,因此请随意忽略它们,但只是为了澄清):

  • 该网站拥有10,000,000个注册用户。
  • 即这些玩家一共玩了50亿手牌。
  • 您获得的唯一信息是该网站的“主手牌历史数据库”,其中包含所有玩家底牌和每手牌的下注动作。
  • 换句话说,您可能不会走捷径,例如检查 IP 地址、寻找不寻常的抽水/盈利模式等等。
  • 假设您有一个函数,当传递一组恰好 N(其中 N 在 2 到 10 之间)玩家时,如果该组中的所有玩家都串通在一起,则返回 TRUE。如果部分但不是所有玩家是共谋者,则该函数返回 FALSE。TRUE 的返回值是(例如)75% 的置信度。

Your job is to produce an exhaustive list of every player who's colluded, along with a complete list of the players he's colluded with. I have recently heard this problem described as NP-hard but is this accurate? Sometimes we call things "NP" or "NP-hard" that are merely "hard".

Thanks!

0 投票
7 回答
38280 浏览

c# - 优化查找:字典键查找与数组索引查找

我正在编写一个 7 张牌扑克手评估器作为我的宠物项目之一。在尝试优化它的速度时(我喜欢这个挑战),我震惊地发现字典键查找的性能与数组索引查找相比非常慢。

例如,我运行了这个示例代码,它枚举了所有 52 个选择 7 = 133,784,560 个可能的 7 手牌:

输出:

是否会出现这种行为(性能下降 8 倍)?IIRC,字典平均有 O(1) 查找,而数组有最坏情况的 O(1) 查找,所以我确实希望数组查找更快,但不会这么快!

我目前将扑克手牌排名存储在字典中。我想如果这与字典查找一样快,我必须重新考虑我的方法并改用数组,尽管索引排名会有点棘手,我可能不得不问另一个问题。

0 投票
2 回答
920 浏览

artificial-intelligence - 我在哪里可以合法地操作 PokerBot(和其他游戏)?

我想为智力挑战构建一个 PokerBot(和其他一些游戏)。但是,我只想以合乎道德和合法的方式做到这一点。

所以,我需要一个游戏服务器,所有玩家和游戏运营商都知道我正在运行一个扑克机器人。这不是作弊,而是常态。也许即使是人类违反规则的地方。

(我还想为其他游戏构建 PlayerBots,而不仅仅是扑克。)

如果尚不存在,是否有人愿意开展合作项目来构建这样的环境?

更新:我想说开放 API 是服务器对机器人开放的最终标志。没有 API = 不欢迎机器人。

此外,我很乐意为积分而不是真钱玩游戏。