嗨我写了各种赌博程序,比如轮盘赌二十一点,现在我正在做扑克
我正在进行5次抽牌并试图确定我的手牌在抽签之前是不是直线
我是一个简单的程序员,我没有上过学。现在我正试图通过找到最高和最低的卡并看看卡是否匹配
来确定直线如果最高卡=最低卡+ 5并且手中没有重新编号,那么这不能准确找到直线吗?
我的代码非常基本且很长,所以我不会在这里发布我做一切蛮力的方法来找到最高/最低和匹配的卡
我认为这是我发现的最简单的方法,但可能太简单了
答案 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添加到代码