Python :: Aufgabe #208
1 Lösung
Klassisches Bingo mit Verzögert gezogenen Nummern
Fortgeschrittener - Python
von maxi72501
- 11.03.2019 um 14:57 Uhr
In dieser Aufgabe soll man ein Klassisches Bingo erstellen wo man eine zufällige Karte erhält wo auf einem 5 * 5 Feld Zahlen von 1 bis 75 verteilt liegen. Zu beachten ist das in der ersten Spalte zahlen von 1 bis 15, in der zweiten Spalte 16 bis 30, in der Dritten 31 bis 45, in der vierten 46 bis 50 und in der letzten 51 bis 75.
Lösungen:
Python-Code
from random import sample import numpy as np from time import sleep alle_zahlen = list(range(1, 76)) gewinnzahlen = sample(alle_zahlen, 75) 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): # spalte for i in range(0, 5): if liste[i].count("X") == 5: print("Spalte") return True # 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") return True 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("Diagonale") return True 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("Diagonale") return True return False def spiel(): for i in range(0, 75): print(f"Die Gewinnzahl ist {gewinnzahlen[i]}") print(np.transpose(np.array(liste))) print("Die bisherigen Gewinnzahlen sind: ", gewinnzahlen[0:i + 1]) print("") sleep(3) for j in range(0, 5): for k in range(0, 5): if liste[j][k] == gewinnzahlen[i]: liste[j][k] = "X" if gewinnen(liste): print("BINGO") print(np.transpose(np.array(liste))) return None spiel()