Das Lottospiel: Selbst tippen und gewinnen
Wie wäre es, die simulierte Lottoziehung in ein kleines Spiel zu erweitern, bei dem du selbst vorher 6 Zahlen tippen darfst und dann nach der Ziehung siehst, wie viele Richtige du gehabt hättest. Du lernst dabei nicht nur etwas über das Programmieren, sondern auch über die Gewinnchancen beim Lotto.
Als Erstes brauchst du dafür eine Liste mit 6 Elementen, in denen dein persönlicher Tipp enthalten ist. Den sollst du aber nicht einfach in den Programmcode schreiben, sondern nach und nach per input eingeben. Das geht sehr einfach mit einer Schleife, die jede Eingabe an die Liste anhängt.
meinTipp = []
repeat 6:
t = input("Gib eine Tippzahl ein:")
meinTipp.append(t)
Nun haben wir die Liste mit deinem Tipp. Jetzt kommt die Ziehung. Die machen wir wie in Methode 4 beschrieben, das geht am schnellsten.
allezahlen = range(1,50)
ziehung = random.sample(allezahlen,6]
Nur noch random importieren, die beiden Listen der Größe nach sortieren und am Schluss ausgeben, dann ist die erste Version fertig:
import random
meinTipp = []
repeat 6:
t = input("Gib eine Tippzahl ein:")
meinTipp.append(t)
allezahlen = range(1,50)
ziehung = random.sample(allezahlen,6)
meinTipp.sort()
ziehung.sort()
print meinTipp
print ziehung
Du kannst jetzt 6 Zahlen nacheinander als Tipp eingeben und erhältst dann die Ausgabe deiner Tippliste (geordnet) sowie die Ausgabe der Ziehung – und kannst selbst vergleichen, wie viele Zahlen du richtig getippt hast. Aber selbst vergleichen – das kann es ja wohl nicht sein. Das soll natürlich auch das Programm machen.
Wie ermittelt das Programm, wie viele Richtige du hast?
Nicht schwer. Du musst nur jedes Element deiner Tippliste durchgehen (dafür eignet sich hervorragend die for-Schleife) und prüfen, ob sie in der Liste ziehung enthalten ist. Wenn ja, dann hast du eine richtige Zahl, die du zur Anzahl der richtig getippten Zahlen hinzufügen kannst. Am Schluss wird die Anzahl der Richtigen ausgegeben. Folgende Zeilen fügst du dem Programm am Schluss hinzu:
richtige = 0
for z in meinTipp:
if z in ziehung:
richtige = richtige + 1
print "Richtig getippte Zahlen:",richtige
Du musst natürlich selbst darauf achten, sechs verschiedene und gültige Zahlen für deinen Tipp einzugeben. Den Rest macht das Programm.
Abbildung 11.3 Keine Zahl richtig getippt – kommt leider öfter vor …
Hast du schon den großen Gewinn? Bedenke, dass man mit einer richtigen Zahl noch gar nichts gewinnt, bei zwei richtigen Zahlen alleine auch noch nichts, und bei drei Richtigen etwa 10 Euro. Vier Richtige bringen 35–50 Euro. Erst ab 5 Richtigen wird es interessant mit ein paar Tausend Euro – und bei 6 korrekt getippten Zahlen sind dann schon mal 600.000 bis zu einer Million drin. Ein Lottotipp kostet 1 Euro (plus kleine Gebühr).
Testen wir mal die Chancen mit einem Programm. Du gibst einen Tipp ab, und das Programm zieht 100 Mal die Lottozahlen. Nur Kombinationen, mit denen du gewonnen hättest, werden ausgegeben. Dazu brauchst du nur einen kleinen Umbau:
import random
meinTipp = []
repeat 6:
t = input("Gib eine Tippzahl ein:")
meinTipp.append(t)
meinTipp.sort()
allezahlen = range(1,50)
repeat 100:
ziehung = random.sample(allezahlen,6)
ziehung.sort()
richtige = 0
for z in meinTipp:
if z in ziehung:
richtige = richtige + 1
if richtige > 2:
print meinTipp
print ziehung
print "Richtig getippte Zahlen:",richtige
Vielleicht bekommst du dabei schon ein Gefühl für die Chancen, viel Geld im Lotto zu gewinnen. Wenn du zwei Mal vier Richtige hattest und ein paar Mal drei Richtige, dann hast du die 100 Euro Einsatz wahrscheinlich wieder rausgekriegt. Ansonsten eher nicht.
Wenn du willst, kannst du an den Schluss noch eine Auswertung bauen, wie oft wie viele Richtige erzielt wurden und wie viel Geld gewonnen wurde. Dazu gibst du am besten ein, wie viele Ziehungen du machen möchtest und schreibst am Schluss die Anzahl der Gewinne in eine Liste mit Richtigen (gewinne[3] bis gewinne[6]).
Das Programm dazu könnte so aussehen:
import random
meinTipp = []
anz = input("Wie viele Ziehungen möchtest du?")
gewinne = [0,0,0,0,0,0,0]
repeat 6:
t = input("Gib eine Tippzahl ein:")
meinTipp.append(t)
meinTipp.sort()
allezahlen = range(1,50)
repeat anz:
ziehung = random.sample(allezahlen,6)
ziehung.sort()
richtige = 0
for z in meinTipp:
if z in ziehung:
richtige = richtige + 1
if richtige > 2:
gewinne[richtige] += 1
print "Auswertung - ",anz,"Ziehungen, Einsatz ",anz,"Euro:"
print "Drei Richtige:",gewinne[3]," Geldgewinn:",gewinne[3]*10,"Euro"
print "Vier Richtige:",gewinne[4]," Geldgewinn:",gewinne[4]*45,"Euro"
print "Fünf Richtige:",gewinne[5]," Geldgewinn:",gewinne[5]*4000,"Euro"
print "Sechs Richtige:",gewinne[6]," Geldgewinn:",gewinne[6]*800000,"Euro"
Ganz schön lang, das Programm. Aber es wird ja auch eine Menge geleistet. Erst die Eingabe der Anzahl Ziehungen, dann die Eingabe aller 6 Tippzahlen, dann die Durchführung der Ziehungen und die Auswertungen dazu, dann die Ausgabe, wie viel Geld du eingesetzt hast, wie viele Richtige erzielt wurden und wie viel du in etwa gewonnen hättest. Probiere es aus: Schaffst du es, mehr zu gewinnen, als du eingesetzt hast? Wenn nicht, dann geht es dir wie den allermeisten Lottospielern. Wenn doch – hmmm … dann solltest du vielleicht zum nächsten Kiosk gehen und Lotto spielen!