用VB确定5张扑克牌中的直接牌

时间:2013-10-24 04:50:56

标签: vb.net poker

嗨我写了各种赌博程序,比如轮盘赌二十一点,现在我正在做扑克

我正在进行5次抽牌并试图确定我的手牌在抽签之前是不是直线

我是一个简单的程序员,我没有上过学。现在我正试图通过找到最高和最低的卡并看看卡是否匹配

来确定直线

如果最高卡=最低卡+ 5并且手中没有重新编号,那么这不能准确找到直线吗?

我的代码非常基本且很长,所以我不会在这里发布我做一切蛮力的方法来找到最高/最低和匹配的卡

我认为这是我发现的最简单的方法,但可能太简单了

1 个答案:

答案 0 :(得分:0)

两种解决方案都有效。

我会做这样的事情。

    Dim cards As List(Of Integer) = New List(Of Integer)
    Dim isStraight as Boolean = False

    cards.Add(1)
    cards.Add(3)
    cards.Add(2)
    cards.Add(4)
    cards.Add(5)

    Dim areMultipleNumbersInList As Boolean = cards.GroupBy(Function(x) x).Any(Function(x) x.Count() > 1)

    Dim max As Integer = cards.Max()
    Dim min As Integer = cards.Min()

    If (max - min = 4 AndAlso Not areMultipleNumbersInList) Then
        isStraight = True
    End If

您需要.NET 4.0才能使用Enumerable.Max / Min方法。如果您需要另一个.NET Framework的解决方案,请告诉我

编辑:将areMultipleNumbersInList添加到代码