使用RegEx获得Poker Hand得分

seF*_*sto 0 c# regex poker

我正在用C#开发扑克游戏.目前我正在尝试使用RegEx获得球员手牌得分.我搜索字符串(由卡片套装和编号组成)并寻找符合RegEx的套装或数字.如果我得到2场比赛,则该球员有一对,3场比赛他有3场比赛.

我现在有3个班级,一个卡级(有数字和套装),一个甲板班(包含52张牌)和一个从洗牌的甲板上获得五张牌的Hand类.

Deck类有一个shuffleDeck(); Hand类具有计算得分的功能(在我使用RegEx的这些功能中).

我通过添加手牌所具有的5个套装和数字来生成我使用RegEx的字符串.

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

谢谢您的帮助

PS.我是一个没有经验的程序员,想要使用新学到的工具

Jon*_*ler 13

我认为正则表达式不是解决这个问题的合适方法.您可能应该使用比字符串更复杂的手形表示.

  • 关于正则表达式最重要的一点就是不使用它们. (8认同)

mma*_*tax 7

你没有提供太多的细节,但从我读过的内容来看,我认为你并没有把OOP推得太远......

我会有一个具有Rank和Suit类实例的Card类.然后我会有一个处理改组/交易的甲板课......

然后我会有一个Hand类,它将包含你的n卡对象的扑克牌......

通过这种方式,您可以构建规则来评估每个手对象,从而在未来更灵活,更具可扩展性...如果您想制作另一个纸牌游戏/添加对另一种扑克变种的支持...

使用正则表达式来完成所有这些似乎是一个非常糟糕的选择.