Erstes Schaufenster Spiel mit Python und Raspberry Pi

Diese Woche haben wir unser erstes Schaufenster Spiel mit python geschreiben aus dem Buch Programmieren Super Easy.

In dem Buch sind super Erklärungen was genau in dem Spiel passiert. Damit das spiel auch draussen mit unserem Controller und ohne Tastatur spielbar ist haben wir die Button mit der gpiozero Library eingebunden. Wichtig ist auch darauf zu achten auch auf dem Pi Python 3 zu verwenden.

from gpiozero import Button
from random import randint

roter_button = Button(7)
button1 = Button(8)
button2 = Button(25)
button3 = Button(11)

print("Geisterspiel")
print("Druecke den roten Button, um das Spiel zu starten")
roter_button.wait_for_press()    

du_bist_mutig = True
score = 0
while du_bist_mutig:
    geistertuer = randint(1, 3)
    print("Vor dir sind drei Türen.")
    print("Hinter einer ist ein Geist")
    print("Welche Tür öffnest du ")
    tuer = input("1, 2 oder 3?  ")
    if button1.is_pressed:
        input(1)
    if button2.is_pressed:
        input(2)
    if button3.is_pressed:
        input(3)
    tuer_nummer = int(tuer)
    if tuer_nummer == geistertuer:
        print("GEIST!")
        du_bist_mutig = False
    else:
        print("Kein Geist")
        print("Du bist ein Zimmer weiter")
        score = score + 1
print("Laufe weg")
print("Spiel vorbei! Deine Punkte:", score)

@maxl du bist nicht im Python fit?

Fit nicht, ich habe es mir mal angeschaut, aber ich bin kein großer Fan von der komischen “Einrück”-Syntax. Angesichts dessen, dass Python aber sehr beliebt ist, sollte ich mich vielleicht nochmal aufraffen. Die Grundprinzipien sind aber eh gleich wie in den meisten anderen Sprachen. Wenn du konkrete Fragen hast, kann ich eventuell trotzdem helfen :slight_smile:

@joni ich will auf Kopfdruck 1,2 und 3 als Keyboard inbut schreiben damit ich keine Tastatur Brauch wie geht das nochmal?

Du brauchst keinen Keyboard input zu schreiben. Es reicht eine Variable zu setzen und die dann abzuprüfen. Mach ne While Schleife bis der Button gedrückt wird und fertig.

geistertuer = randint(1, 3)
    print("Vor dir sind drei Türen.")
    print("Hinter einer ist ein Geist")
    print("Welche Tür öffnest du ")
    pressed = False
    while not pressed:
        if button1.is_pressed:
            tuer_nummer=1
            pressed=True
        elif button2.is_pressed:
...

Es würd sich aber lohnen, das gleich ordentlich mit Pygame zu machen, weil du sonst einige Tastendrücke nicht feststellst, stichwort event loop etc.

1 „Gefällt mir“

Merci dir genial. Ja da komme ich noch nicht drauf. Brauche mehr Übung.