Python :: Aufgabe #351 :: Lösung #1
2 Lösungen

#351
Bingo-Lotterie (Spielerweiterung)
Fortgeschrittener - Python
von JKooP
- 19.04.2021 um 20:17 Uhr
Ich habe die bereits bestehende Aufgabe
"Klassisches Bingo mit verzögert gezogenen Nummern (C# 243, C++ 220, PY 208, …) von maxi72501"
noch einmal aufgegriffen.
Das Spiel soll dahingehend erweitert werden, dass 22 Zahlen gezogen werden und
der vorab erstelle Spielschein (Aufgabe besteht bereits) damit verglichen wird.
Finden sich fünf Treffer in waagerechter, senkrechter oder diagonaler Reihe heißt das BINGO (siehe Bilder).
Als Ergebnis soll die Anzahl der Gewinne (Einfach-, Zweifach- bzw. Dreifach-Bingo) ausgegeben werden.
Viel Spaß
"Klassisches Bingo mit verzögert gezogenen Nummern (C# 243, C++ 220, PY 208, …) von maxi72501"
noch einmal aufgegriffen.
Das Spiel soll dahingehend erweitert werden, dass 22 Zahlen gezogen werden und
der vorab erstelle Spielschein (Aufgabe besteht bereits) damit verglichen wird.
Finden sich fünf Treffer in waagerechter, senkrechter oder diagonaler Reihe heißt das BINGO (siehe Bilder).
Als Ergebnis soll die Anzahl der Gewinne (Einfach-, Zweifach- bzw. Dreifach-Bingo) ausgegeben werden.
Viel Spaß
#1

von AlexGroeg (2010 Punkte)
- 26.04.2021 um 21:33 Uhr

from random import sample import numpy as np from time import sleep n = 75 #22 # Anzahl gezogene Zahlen alle_zahlen = list(range(1, 76)) gewinnzahlen = sample(alle_zahlen, n) liste = [] zahlen_1_15 = list(range(1, 16)) zahlen_16_30 = list(range(16, 31)) zahlen_31_45 = list(range(31, 46)) zahlen_46_60 = list(range(46, 61)) zahlen_61_75 = list(range(61, 76)) liste.append(sample(zahlen_1_15, 5)) liste.append(sample(zahlen_16_30, 5)) liste.append(sample(zahlen_31_45, 5)) liste.append(sample(zahlen_46_60, 5)) liste.append(sample(zahlen_61_75, 5)) def gewinnen(liste): bingo = 0 # spalte for i in range(0, 5): if liste[i].count("X") == 5: print("Spalte,", end=' ') bingo += 1 # zeile for i in range(0, 5): x_se = 0 for j in range(0, 5): if liste[j][i] == "X": x_se += 1 if x_se == 5: print("Zeile,", end=' ') bingo += 1 # diagonal if liste[0][0] == "X" and liste[1][1] == "X" and liste[2][2] == "X" and liste[3][3] == "X" and liste[4][4] == "X": print("Diagonal,", end=' ') bingo += 1 if liste[0][4] == "X" and liste[1][3] == "X" and liste[2][2] == "X" and liste[3][1] == "X" and liste[4][0] == "X": print("Diagonal,", end=' ') bingo += 1 if bingo == 1: return 'Einfaches Bingo' if bingo == 2: return 'Zweifaches Bingo' if bingo == 3: return 'Dreifaches Bingo' return False def spiel(): global n for i in range(0, n): sleep(0) for j in range(0, 5): for k in range(0, 5): if liste[j][k] == gewinnzahlen[i]: liste[j][k] = "X" gewinnart = gewinnen(liste) if gewinnart: print(gewinnart) print(np.transpose(np.array(liste))) print('\ngezogene Gewinnzahlen:\n', gewinnzahlen) return None print('kein Gewinn') spiel()
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1