Banner
Startseite Tipps & Tricks Programme Portale & Foren
PC/GEOS   ... auf dem Mac   ... auf dem iPad   R-Basic   Kompatible Webseiten erstellen   Weitere Dateien
 

Lottofee

13.09.11 - Dies ist das erste Beispielprogramm, in welches ich einige UI-Objekte der aktuellen R-Basic Beta eingebaut habe. Lottofee bietet sich für diesen ersten Versuch an, weil der Programmcode zum Ziehen der Zahlen nur aus wenigen Zeilen besteht und die ganze Sache dadurch schön überschaubar bleibt.

Zuerst wird die klassische Basic-Variante behandelt, in der nach dem Start des Programms die Zahlen einfach im vorgegebenen Fenster angezeigt werden. Danach folgt die UI-Objekt-Variante der Lottofee.

Der ursprünglich Code für die Ziehung der Zahlen und zur anschließenden sortierten Ausgabe stammt nicht von mir, sondern aus einem der vielen, freien Lottogeneratoren, die man im Internet findet.

Klassik-Basic Version

Neben der Ziehung der Zahlen an sich, muss z.B. auch sichergestellt werden, dass jede Zahl nur einmal gezogen wird. Und richtig perfekt wird solch ein Programm erst, wenn zum Abschluss die gezogene Zahlenreihe sortiert auf dem Bildschirm ausgegeben wird.

Die folgende Lösung führt mit relativ wenig Aufwand zum Ziel.

Wie funktioniert der Lottofee-Code eigentlich?

Die Vorgaben sind bekannt: Es sollen sechs Zahlen aus 49 Möglichen gezogen und diese anschließend aufsteigend sortiert auf dem Bildschirm ausgegeben werden.
  • Als erstes muss die Funktion RANDOMIZE einmal aufgerufen werden, um den Zufallsgenerator zu starten. Und schon geht es an's Zahlenziehen.
  • Die FOR - NEXT-Schleife sorgt mit den übergebenen Parametern 1 TO 6 dafür, dass alle Befehle, die sich in der Schleife zwischen FOR und NEXT befinden, genau sechs mal abgearbeitet werden.
  • In der Variable gezogen wird das Ergebnis der nachfolgenden Berechnung gespeichert.
  • Int rundet die berechnete Zahlen auf Ganzzahlen ohne Komma ab, entfernt also die Nachkommastellen aus dem Ergebnis.
  • (49 * Rnd()) + 1 wählt eine zufällige Zahl zwischen 0 und 48 aus und zählt hinterher noch eine 1 dazu, um den Zahlenbereich von 0 bis 48 nach 1 bis 49 zu verschieben.
  • Die WHILE-WEND-Schleife kontrolliert, ob die eben gezogene Zahl schon einmal gezogen wurde. Falls ja, wird erneut gezogen und abermals geprüft, ob diese Zahl schon gezogen wurde. Falls nein, wird die Schleife verlassen und...
  • ... in der Feldvariable zahlen(49) an der Position, die der gezogenen Zahl entspricht, eine 1 geschrieben. Die Feldvariable kann man sich bildhaft als einen Schrank mit (in diesem Fall) 49 Fächer vorstellen. In jedem Fach befindet sich als Vorgabe eine 0. Wird nun eine 3 gezogen, wird die 0 in Fach 3 durch eine 1 ersetzt.
  • Zum Abschluss werden noch einmal mit einer FOR-NEXT-Schleife nacheinander alle Fächer des Schranks nach einer 1 durchsucht. Hat die Schleife z.B. beim dritten Durchlauf (also in Fach 3) eine 1 gefunden, wird nicht der Inhalt des Fachs (die 1) angezeigt, sondern die Zahl der bisherigen Durchläufe (also die 3).


Lottofee 1.1.1 herunterladen - Klassik-Basic Version. Eignet sich gut, um den Lotto-Code zu studieren. 07.09.11

UI-Objekt-Basic Version

Erstellt mit der R-Basic Beta 0.7.5.1.

Im Gegensatz zur Klassik-Version sind hier im oberen Bereich einige Befehle zur Änderung der Hintergrundfarbe, zur Positionierung der Ausgabe und zur Schriftart / Schriftgröße hinzugekommen. Sie werden für den "Startbildschirm" benötigt.

Der eigentliche Code zur Ziehung der Zahlen ist nun zu einem eigenen Bereich geworden - dem Unterprogramm "ActionStart". Das Unterprogramm wird nur abgearbeitet, wenn der Nutzer den "Starten"-Button drückt.

Insgesamt fünf UI-Objekte kommen für die Lottofee zum Einsatz.

Lottofee 2.1.1 herunterladen - UI-Objekt-Basic Version. 09.09.11

Öffnen Sie den Quelltext im Interpreter, indem Sie Lottofee doppelklicken, oder benutzen Sie den "Öffnen-Dialog" des R-Basic-Interpreters. Anschließend können Sie mit "F9" bzw. "FN + F9" Lottofee starten.

Beenden Sie Lottofee, indem Sie im Dateimenü den Punkt "Exit BASIC Program" aufrufen.

Weiterführende Links

Die R-Basic Grundlagen Zufallszahlen - RANDOMIZE / RND() liefern weitere Infos zum Thema.
 
© Bernd Mützel • Impressum
Zum Anfang der Seite