骰子问题(满屋和直接识别)

Llo*_*ell 5 c# regex poker dice

我正在做一个骰子游戏.有5个骰子,我有所有的值,我需要确定它们是否构成一个完整的房子(一个中的3个和另一个中的2个),小直(1-4,2-6或3-6)或一个大直(1-5,2-6).

也许解决这个问题的最佳方法似乎是使用正则表达式.

有谁知道如何在正则表达式中表示这些规则?

或者如果你能提供更好的解决方案,我会很感激.

例子:

  • 满屋= 44422或11166或12212等
  • 小直= 12342或54532等
  • 大直= 12345或52643等

编辑
更改了措辞以突出显示这是我的缺乏经验的意见.

我知道如何使用代码实现这一点,但它似乎是一个冗长的解决方案,我想知道是否有一个更简单的方法.

Cra*_*ite 5

我会命令所有数字减少,然后在每个值上进行一些线性标准匹配,无论它是在int []还是字符串中.

  • 从什么时候骰子有国王,皇后,杰克和王牌?每个人都在阅读满屋并自动认为它是扑克而忽略了骰子被提及三次的事实:) (4认同)
  • [扑克骰子](http://en.wikipedia.org/wiki/Poker_dice) - 我知道你的意思,但扑克算法中使用的技术非常适合骰子 (2认同)

use*_*291 5

不知道c#,但是用脚本语言我会采用regexp路由.对于每一方,计算组合中出现的次数并将结果连接在一起.例如,对于组合12342,计数器字符串将是121100.然后将计数器字符串与这些模式匹配:

/5/         = Five of a kind
/4/         = Four of a kind
/20*3|30*2/ = Full house
/1{5}/      = Large Straight
/[12]{4}/   = Small Straight
/3/         = Three of a kind
/2[013]*2/  = Two pair
/2/         = One pair
Run Code Online (Sandbox Code Playgroud)