Python :: Aufgabe #208

1 Lösung Lösung öffentlich

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:

vote_ok
von satn1241 (3090 Punkte) - 16.05.2020 um 22:26 Uhr
Quellcode ausblenden 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()
1809680

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.