Wie andere Kommentatoren angegeben haben, macht der 'boolesche' Zahlenvergleich wahrscheinlich nicht das, was er zu tun scheint. Sie würden jeden Fall benötigen, um seinen Spulenwert mit allen anderen Spulenwerten zu vergleichen, was die Syntax nicht viel kürzer machen würde als Ihre If
Struktur. Es gibt verschiedene mathematische Lösungen (und die von Nathan_Sav vorgeschlagene sollte funktionieren, wenn Ihre Daten gut sind).
Sie haben jedoch gefragt, ob es einen besseren Weg gibt und, um den Code einfach zu halten, wäre es eine Möglichkeit, die Spulenwerte einem Ergebnis-Array oder einer Sammlung einer Art zuzuordnen.
Eine naheliegende Sammlung wäre eine Dictionary
, die die Häufigkeitszählung und die Anzahl jedes einzelnen Spulenwerts enthalten könnte. Wenn Sie Ihre ReelNum
als ein Array deklariert hätten, wäre der Code sehr kurz, aber wenn Sie Ihre individuellen Variablen behalten, brauchen Sie Ihre Haupt- und eine andere, um das Dictionary zu erstellen. Also Ihr Hauptunter wäre:
Dim count As Dictionary(Of Integer, Integer)
count = New Dictionary(Of Integer, Integer)()
BuildResults(count, ReelNum1)
BuildResults(count, ReelNum2)
BuildResults(count, ReelNum3)
BuildResults(count, ReelNum4)
BuildResults(count, ReelNum5)
Select Case count.Values.Max()
Case 1 : Console.Write("None the same")
Case 2 : Console.Write("Two the same")
Case 3 : Console.Write("Three the same")
Case 4 : Console.Write("Four the same")
Case 5 : Console.Write("All the same")
Case Else : Console.Write("Who knows?")
End Select
Und das Gebäude Routine:
Private Sub BuildResults(ByRef count As Dictionary(Of Integer, Integer), ByVal newNum As Integer)
If Not count.ContainsKey(newNum) Then count.Add(newNum, 0)
count(newNum) = count(newNum) + 1
End Sub
Ich bin mir nicht sicher, ob dies ein Bildungsprojekt, aber nur für den Fall es ist, ich habe eine inbegriffen Select Case
so können Sie sehen, wie es funktioniert.
Du "Vergleich" in der Booleschen Weg nach oben top, dh reel2 = true & reel3 = true, Du könntest sowas benutzen wie ((r2-r3) * (r2-r4) * (r2-r5)) = 0 vielleicht –
^^ Hat nicht funktioniert. danke trotzdem –
sind sie definitiv nummern? wenn r2, r3, r4 3 waren und r5 2 war, dann r2-r3 = 0, r2-r4 = 0 und r2-r5 = 1 und 0 * 0 * 1 = 0? –