Herzlichen Glückwunsch! Du hast die Grundlagen von Python gelernt und bist bereit für dein erstes richtiges Projekt: Hangman. Dieses Spiel ist ein Klassiker und eine fantastische Möglichkeit, deine Programmierfähigkeiten zu festigen und zu erweitern. In diesem Artikel führen wir dich Schritt für Schritt durch den Prozess, dein eigenes Hangman-Spiel in Python zu erstellen. Keine Sorge, wir erklären jeden Schritt detailliert und in einem für Anfänger verständlichen Ton. Los geht’s!
Was ist Hangman?
Bevor wir in den Code eintauchen, lass uns kurz das Spielprinzip von Hangman rekapitulieren. Ein Spieler (in unserem Fall der Computer) wählt ein geheimes Wort. Der andere Spieler (du) versucht, das Wort zu erraten, indem er einzelne Buchstaben vorschlägt. Für jeden falschen Buchstaben wird ein Teil des Galgens (oder eines anderen Bildes) gezeichnet. Wenn der Galgen vollständig ist, bevor das Wort erraten wurde, hat der Spieler verloren.
Planung ist alles: Der Ablauf unseres Spiels
Bevor wir mit dem Programmieren beginnen, ist es wichtig, den Ablauf des Spiels festzulegen. Das hilft uns, den Code später besser zu strukturieren. Hier ist, was wir brauchen:
1. **Wortauswahl:** Der Computer wählt zufällig ein Wort aus einer Liste aus.
2. **Initialisierung:** Wir erstellen eine leere Liste, um die erratenen Buchstaben anzuzeigen, und initialisieren die Anzahl der Versuche.
3. **Spielschleife:**
* Zeige den aktuellen Stand des Wortes an (z.B. „_ _ A _ _”).
* Fordere den Spieler auf, einen Buchstaben einzugeben.
* Überprüfe, ob der Buchstabe im geheimen Wort enthalten ist.
* Wenn ja, füge den Buchstaben an den entsprechenden Stellen in die Liste der erratenen Buchstaben ein.
* Wenn nein, erhöhe die Anzahl der Versuche.
* Überprüfe, ob der Spieler das Wort erraten hat oder die maximale Anzahl von Versuchen erreicht wurde.
4. **Spielende:** Zeige an, ob der Spieler gewonnen oder verloren hat und zeige das geheime Wort an.
Schritt 1: Die Grundlagen – Setup und Wortliste
Zuerst müssen wir unser Skript vorbereiten und eine Liste mit möglichen Wörtern erstellen. Erstelle eine neue Python-Datei (z.B. `hangman.py`) und füge folgenden Code ein:
„`python
import random
def waehle_wort():
woerter = [„python”, „programmieren”, „entwickler”, „algorithmus”, „computer”]
return random.choice(woerter)
geheimes_wort = waehle_wort()
print(„Willkommen zu Hangman!”)
„`
**Erklärung:**
* `import random`: Importiert das `random`-Modul, das wir für die zufällige Wortauswahl benötigen.
* `waehle_wort()`: Diese Funktion definiert eine Liste `woerter` mit möglichen Wörtern. Sie verwendet `random.choice()`, um ein zufälliges Wort aus dieser Liste auszuwählen und zurückzugeben.
* `geheimes_wort = waehle_wort()`: Ruft die Funktion `waehle_wort()` auf und speichert das ausgewählte Wort in der Variable `geheimes_wort`.
* `print(„Willkommen zu Hangman!”)`: Gibt eine Begrüßungsnachricht aus.
Du kannst die Liste `woerter` natürlich beliebig erweitern oder sogar aus einer externen Datei laden.
Schritt 2: Variablen initialisieren
Jetzt initialisieren wir einige wichtige Variablen, die wir während des Spiels benötigen:
„`python
geheimes_wort = waehle_wort()
wort_laenge = len(geheimes_wort)
erratene_buchstaben = [„_”] * wort_laenge
versuche = 6 # Anzahl der maximalen Fehlversuche
falsche_buchstaben = []
print(„Willkommen zu Hangman!”)
print(„Das Wort hat”, wort_laenge, „Buchstaben.”)
print(erratene_buchstaben)
„`
**Erklärung:**
* `wort_laenge = len(geheimes_wort)`: Speichert die Länge des geheimen Wortes in der Variable `wort_laenge`.
* `erratene_buchstaben = [„_”] * wort_laenge`: Erstellt eine Liste mit Unterstrichen, die die noch nicht erratenen Buchstaben des Wortes repräsentieren. Die Länge der Liste entspricht der Länge des geheimen Wortes.
* `versuche = 6`: Setzt die Anzahl der maximalen Fehlversuche auf 6. Du kannst diesen Wert anpassen.
* `falsche_buchstaben = []`: Erstellt eine leere Liste, um die falsch geratenen Buchstaben zu speichern.
* Die `print`-Anweisungen geben Informationen über das Spiel aus.
Schritt 3: Die Spielschleife
Das Herzstück unseres Spiels ist die Spielschleife. Diese Schleife wird so lange ausgeführt, bis der Spieler das Wort erraten hat oder die maximale Anzahl von Versuchen erreicht wurde.
„`python
while versuche > 0 and „_” in erratene_buchstaben:
buchstabe = input(„Bitte gib einen Buchstaben ein: „).lower()
if len(buchstabe) != 1 or not buchstabe.isalpha():
print(„Ungültige Eingabe. Bitte gib einen einzelnen Buchstaben ein.”)
continue # Springt zum nächsten Schleifendurchlauf
if buchstabe in falsche_buchstaben or buchstabe in erratene_buchstaben:
print(„Du hast diesen Buchstaben bereits versucht.”)
continue
if buchstabe in geheimes_wort:
for i in range(wort_laenge):
if geheimes_wort[i] == buchstabe:
erratene_buchstaben[i] = buchstabe
print(„Richtig!”)
else:
versuche -= 1
falsche_buchstaben.append(buchstabe)
print(„Falsch! Du hast noch”, versuche, „Versuche.”)
print(„Falsche Buchstaben:”, falsche_buchstaben)
print(erratene_buchstaben)
„`
**Erklärung:**
* `while versuche > 0 and „_” in erratene_buchstaben:`: Diese `while`-Schleife läuft, solange der Spieler noch Versuche übrig hat (`versuche > 0`) und noch nicht alle Buchstaben erraten wurden (`”_” in erratene_buchstaben`).
* `buchstabe = input(„Bitte gib einen Buchstaben ein: „).lower()`: Fordert den Spieler auf, einen Buchstaben einzugeben, und wandelt ihn in Kleinbuchstaben um.
* Die darauffolgenden `if`-Abfragen validieren die Eingabe des Spielers. Es wird geprüft, ob nur ein Buchstabe eingegeben wurde und ob dieser nicht bereits erraten oder falsch geraten wurde.
* `if buchstabe in geheimes_wort:`: Überprüft, ob der eingegebene Buchstabe im geheimen Wort enthalten ist.
* Wenn ja, wird die Liste `erratene_buchstaben` aktualisiert, um den Buchstaben an den entsprechenden Stellen anzuzeigen.
* Wenn nein, wird die Anzahl der `versuche` reduziert, der Buchstabe zur Liste `falsche_buchstaben` hinzugefügt und eine entsprechende Nachricht ausgegeben.
* `print(erratene_buchstaben)`: Zeigt den aktuellen Stand des Wortes an.
Schritt 4: Spielende
Nachdem die Spielschleife beendet ist, müssen wir überprüfen, ob der Spieler gewonnen oder verloren hat, und eine entsprechende Nachricht ausgeben.
„`python
if „_” not in erratene_buchstaben:
print(„Herzlichen Glückwunsch! Du hast das Wort erraten:”, geheimes_wort)
else:
print(„Schade! Du hast verloren. Das Wort war:”, geheimes_wort)
„`
**Erklärung:**
* `if „_” not in erratene_buchstaben:`: Überprüft, ob noch Unterstriche in der Liste `erratene_buchstaben` vorhanden sind. Wenn nicht, hat der Spieler das Wort erraten.
* Andernfalls hat der Spieler verloren und das geheime Wort wird angezeigt.
Der vollständige Code
Hier ist der vollständige Code für unser Hangman-Spiel:
„`python
import random
def waehle_wort():
woerter = [„python”, „programmieren”, „entwickler”, „algorithmus”, „computer”]
return random.choice(woerter)
geheimes_wort = waehle_wort()
wort_laenge = len(geheimes_wort)
erratene_buchstaben = [„_”] * wort_laenge
versuche = 6
falsche_buchstaben = []
print(„Willkommen zu Hangman!”)
print(„Das Wort hat”, wort_laenge, „Buchstaben.”)
print(erratene_buchstaben)
while versuche > 0 and „_” in erratene_buchstaben:
buchstabe = input(„Bitte gib einen Buchstaben ein: „).lower()
if len(buchstabe) != 1 or not buchstabe.isalpha():
print(„Ungültige Eingabe. Bitte gib einen einzelnen Buchstaben ein.”)
continue
if buchstabe in falsche_buchstaben or buchstabe in erratene_buchstaben:
print(„Du hast diesen Buchstaben bereits versucht.”)
continue
if buchstabe in geheimes_wort:
for i in range(wort_laenge):
if geheimes_wort[i] == buchstabe:
erratene_buchstaben[i] = buchstabe
print(„Richtig!”)
else:
versuche -= 1
falsche_buchstaben.append(buchstabe)
print(„Falsch! Du hast noch”, versuche, „Versuche.”)
print(„Falsche Buchstaben:”, falsche_buchstaben)
print(erratene_buchstaben)
if „_” not in erratene_buchstaben:
print(„Herzlichen Glückwunsch! Du hast das Wort erraten:”, geheimes_wort)
else:
print(„Schade! Du hast verloren. Das Wort war:”, geheimes_wort)
„`
Erweiterungen und Verbesserungen
Unser Hangman-Spiel ist jetzt funktionsfähig, aber es gibt viele Möglichkeiten, es zu erweitern und zu verbessern:
* **Grafische Darstellung:** Verwende eine Bibliothek wie `pygame` oder `tkinter`, um eine grafische Oberfläche für das Spiel zu erstellen. Zeige den Galgen Schritt für Schritt an, wenn der Spieler falsche Buchstaben errät.
* **Wortlisten aus Dateien:** Lade die Wortliste aus einer externen Textdatei, um das Spiel flexibler zu gestalten.
* **Schwierigkeitsgrade:** Implementiere verschiedene Schwierigkeitsgrade, indem du unterschiedliche lange Wörter oder Wortlisten mit unterschiedlichem Schwierigkeitsgrad verwendest.
* **Highscore:** Speichere die Highscores der Spieler und zeige sie an.
* **Mehrspieler-Modus:** Erlaube zwei Spielern, gegeneinander zu spielen.
Fazit
Du hast es geschafft! Du hast dein eigenes Hangman-Spiel in Python erstellt. Dieses Projekt hat dir nicht nur die Grundlagen von Python nähergebracht, sondern dir auch gezeigt, wie du ein komplexeres Problem in kleinere, überschaubare Teile zerlegen kannst. Wir hoffen, dieser Artikel hat dir geholfen und dich inspiriert, weitere spannende Projekte zu realisieren. Viel Spaß beim Weiterprogrammieren! Denke daran, der beste Weg, programmieren zu lernen, ist, es einfach zu tun! Experimentiere mit dem Code, füge neue Funktionen hinzu und lass deiner Kreativität freien Lauf. Das Programmieren ist eine Reise, und mit jedem Projekt, das du abschließt, wirst du besser.