Heute möchten wir Ihnen einen Code zum Generieren von "Lottozahlen 6 aus 49" vorstellen. Beim Erzeugen der Zufallszahlen muss sich die Zahl immer zwischen 1 und 49 befinden. Weiterhin darf eine bereits ermittelte Zahl nicht doppelt "gezogen" werden. Damit keine Zahlen doppelt vorkommen, werden die bereits gezogenen Zahlen in einer sortierten Liste (SortedList-Klasse) gespeichert. Dies hat den Vorteil, dass die Zahlen für die spätere Ausgabe am Bildschirm autom. sortiert ausgegeben werden. Die SortedList-Klasse hat aber noch einen weiteren wesentlichen Vorteil gegenüber bspw. der "normalen" ArrayList-Klasse. Über die "ContainsValue"-Eigenschaft kann abgefragt werden, ob ein bestimmtes Objekt bereits in der Liste vorhanden ist, ohne dass man die Liste von vorne bis hinten durchlaufen und jedes Element einzeln prüfen muss. ' Sicherstellen, daß bei jedem Start wirklich ' eine neue Zufallszahlen-Folge generiert wird Randomize() ' Zufallszahlen-Klasse und ArrayList zum ' Zwischenspeichern erstellen Dim oZahl As New System.Random Dim oList As New SortedList Dim Zahl As Integer Dim i As Integer ' Insgesamt 6 Zufallszahlen ermitteln For i = 1 To 6 Do ' Zufallszahl im Bereich 1 bis 49 Zahl = oZahl.Next(1, 50) ' Prüfen, ob Zufallszahl bereits gezogen If Not oList.ContainsValue(Zahl) Then ' Falls nicht, jetzt als "gezogen" merken, ' indem die Zahl der Liste hinzugefügt wird oList.Add(Zahl, Zahl) Exit Do End If Loop Next i ' Lottozahlen anzeigen Dim sMsg As New System.Text.StringBuilder Dim oValues As IList = oList.GetValueList sMsg.Append("Die Lottozahlen lauten: ") For i = 0 To oValues.Count - 1 sMsg.Append(" " & oValues(i)) Next MsgBox(sMsg.ToString) Erläuterungen zur Zufallszahlen-Ermittlung |