Higher/Lower Game in Python

Ich habe in einem der letzten Beiträge bereits gezeigt, wie man in wenigen Schritten Python auf einem Windows PC installieren und den Code-Editor Visual Studio Code so einstellen kann, dass einem dieser während der Python-Entwicklung unterstützt. Wir haben auch schon ein ersten kleines Hello World Skript geschrieben. In diesem Beitrag möchte ich euch nun zeigen, wir ihr das klassische Higher/Lower Game in Python umsetzen könnt. Dabei denkt sich der Computer eine Zahl zwischen 1 und 100 und der Nutzer muss diese Zahl erraten. Dabei gibt der Computer nur Hinweise durch die Angabe, ob die Zahl größer oder kleiner ist.

Als Ausgangslage habe ich VS Code bereits geöffnet und eine Datei higherlower.py angelegt, welche wir nun mit Inhalt füllen wollen. Zunächst importieren wir das Modul random, da der Computer später per Zufall eine Zahl zwischen 1 und 100 auswählen soll.

import random

Beim Starten des Skripts wollen wir einen kleinen Header anzeigen. Dafür nutzen wir die print-Funktion, welche ich bereits im letzten Beitrag gezeigt habe.

# start screen
print('------------------')
print('- HIGHER | LOWER -')
print('------------------')

Im nächsten Schritt wollen wir eine Variable definieren. Die Variable mit dem Namen isGameRunning gibt an, ob das Spiel aktuell noch läuft.

# game variables
isGameRunning = True

Wir wollen nun eine eigene Funktion schreiben, welche die Auswahl des Spielers darstellt und gleichzeitig ein bisschen Error-Handling übernimmt, um sicherzustellen, dass nur Zahlen zwischen 1 und 100 eingegeben werden.

# function to get player selection
def playerSelection():
    player = 0

    while not player:
        try:
            player = int(input('\nEnter a number between 1 and 100:\n'))
            if player not in range(1, 100):
                raise ValueError
        except ValueError:
            player = 0
	
    return player

Nun beginnt die eigentliche Game Loop, welche so lange aktiv ist, wie isGameRunning auf True steht.

# game loop
while isGameRunning:

Zunächst lassen wir den Spieler eine Zahl auswählen. Dazu nutzen wir die Funktion playerSelection und weisen das Ergebnis der Variablen player zu.

# selection of player
player = playerSelection()

Im nächsten Schritt lassen wir den Computer eine zufällige Zahl zwischen 1 und 100 wählen.

# selection of computer
computer = random.randint(1, 100)

Wir wollen die Anzahl der Versuche zählen. Dafür nutzen wir eine Variable counter, welche wir mit 1 initialisieren.

# set counter
counter = 1

Nun folgt eine weitere Loop, welche überprüft, ob die eingebende Zahl der Zufallszahl entspricht. Wenn dies nicht der Fall ist, dann wird ein Hinweis ausgegeben, ob die Zahl zu groß oder zu klein ist. Anschließend erhöhen wir den Counter und lassen den Spieler eine neue Zahl eingeben. Wenn die Zahlen übereinstimmen, dann wird ein entsprechender Hinweis ausgegeben.

# game logic
while player != computer:
    if player > computer:
        print('Your number is too high!')
    else:
        print('Your number is too low!')
    counter += 1
    player = playerSelection()

print(f'Congratulations! You matched my number in {counter} steps!')

Anschließend fragen wir den Spieler, ob er eine weitere Runde spielen möchte. Auch hier validieren wir wieder, ob die Eingabe des Nutzers entweder ‚y‘ oder ’n‘ entspricht und bei die isGameRunning-Variable manipuliert.

# restart game if needed
restartGame = ''
while restartGame not in ('y', 'n'):
    restartGame = input('Do you want to restart the game?\n[y] yes | [n] no\n')

    if (restartGame != 'y'):
        isGameRunning = False

Damit haben wir jetzt unser ersten Python-Spiel bereits fertig programmiert und können es ausprobieren. Dazu öffnen wir über strg + Ö das Terminal und geben python ./higherlower.py ein und schon beginnt das Spiel.

Wir haben nun ein erstes eigenes Spiel in Python programmiert. Das vollständige Skript lässt sich über den folgenden Download-Button herunterladen:

Snake-Spiel in Python mit ChatGPT entwickelt Entwicklung eines Alexa-Skills #1 Anzeigen von Dateien auf einem Device mit dem Device File Explorer