
🌐 Auch auf: English · Français · Español
Ich spiele jetzt seit ein paar Tagen mit Python herum – hauptsächlich Theorie: Variablen, Schleifen, Bedingungen und die üblichen Verdächtigen. Und wie jeder vernünftige Programmier-Neuling habe ich beschlossen, dass mein erstes „echtes“ Projekt etwas Episches sein muss.
Also natürlich… Galgenmännchen.
Die perfekte Herausforderung für Einsteiger:
- Du übst Variablen, indem du die geratenen Buchstaben und Fehlversuche mitzählst.
- Du nutzt Schleifen für den Spielablauf.
- Du streust Bedingungen ein, die über Leben und Tod entscheiden (na ja, in ASCII).
Nach etwas Trial and Error (und einer ordentlichen Portion „Ach ja, Python unterscheidet Groß- und Kleinschreibung“) lief meine Version. Zugegeben, ein paar Stellen habe ich von ChatGPT „aufpimpen“ lassen – aber hey, so lernt man schneller, oder?
Was es kann
- Wählt ein zufälliges Wort aus einer vordefinierten Liste
- Zeigt bei jedem falschen Tipp ein ASCII-Strichmännchen
- Lässt dich einzelne Buchstaben oder gleich das ganze Wort raten
- Kommt mit Groß- und Kleinschreibung sowie doppelten Tipps klar
- Stellt meine wachsenden Python-Superkräfte zur Schau
Warum ich es liebe
Es ist nicht nur ein Spiel – es ist eine kleine Zeitkapsel, die zeigt, wo ich gerade auf meiner Programmierreise stehe.
In ein paar Monaten schaue ich darauf zurück und denke: „Wow… ich hab ganz schön was dazugelernt.“
Aber im Moment ist es einfach pure Freude, zuzusehen, wie sich mein Terminal mit Unterstrichen, ASCII-Art und Siegesmeldungen (oder tragischen Niederlagen) füllt.
Fazit
Wenn du mit Python anfängst, bau ein Galgenmännchen-Spiel. Ernsthaft. Es ist der perfekte Spielplatz, um mit Schleifen, Logik und der Magie von ASCII zu experimentieren. Und wenn dein Code dann noch sauber aussieht und fehlerfrei läuft, hast du schon gewonnen.
library.py
words = ["Apfel", "Banane", "Mango", "Kirsche", "Pfirsich", "Linux", "Kernel", "Docker", "Ansible", "Python"]
logo = ['''
_
| |
| |__ __ _ _ __ __ _ _ __ ___ __ _ _ __
| '_ \ / _` | '_ \ / _` | '_ ` _ \ / _` | '_ \
| | | | (_| | | | | (_| | | | | | | (_| | | | |
|_| |_|\__,_|_| |_|\__, |_| |_| |_|\__,_|_| |_|
__/ |
|___/''']
HANGMANPICS = ['''
+---+
| |
|
|
|
|
=========''', '''
+---+
| |
O |
|
|
|
=========''', '''
+---+
| |
O |
| |
|
|
=========''', '''
+---+
| |
O |
/| |
|
|
=========''', '''
+---+
| |
O |
/|\ |
|
|
=========''', '''
+---+
| |
O |
/|\ |
/ |
|
=========''', '''
+---+
| |
O |
/|\ |
/ \ |
|
=========''']
main.py
# =============================================================================
# Hangman Game
#
# File: main.py
# Author: Raphael Münch
# Email: you@example.com
# Website: https://www.apt-upgrade.me
#
# Created: 2025-08-15
# Last Updated: 2025-08-15
#
# Description:
# A simple Hangman game played in the console.
# Includes ASCII art, word guessing, and configurable max attempts.
#
# Copyright (c) 2025 Raphael Münch. All rights reserved.
#
# License:
# This software is licensed under the MIT License.
# You may use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, provided the copyright notice
# above appears in all copies.
#
# =============================================================================
import library
import os
import random
DEBUG = False
while True:
# Clear the console (Windows = 'cls', others = 'clear')
os.system('cls' if os.name == 'nt' else 'clear')
print(library.logo[0])
chosen_word = random.choice(library.words)
word_lower = chosen_word.lower()
# Create a mask: "_" for each letter in the word
mask = ["_"] * len(chosen_word)
guessed_letters = "" # Letters guessed in the current round
wrong_attempts = 0 # Count of wrong guesses
max_attempts = len(library.HANGMANPICS) - 1 # e.g., 6 wrong guesses allowed
found_letter = False
while True:
print(f"Your guesses: {guessed_letters}")
print(f"Current word: {' '.join(mask)}")
if DEBUG:
print(f"Chosen word: {chosen_word}")
print(f"Attempt: {wrong_attempts}/{max_attempts}")
choice = input("Enter a letter or guess the word: ").strip()
# Whole word guess
if len(choice) > 1:
if choice.lower() == word_lower:
mask = list(chosen_word) # Reveal the whole word
print("You win!!!")
break
else:
wrong_attempts += 1
print(f"\n\n{library.HANGMANPICS[min(wrong_attempts, max_attempts)]}")
if wrong_attempts >= max_attempts:
print("\n\aYou've lost!!!")
print(f"The word was: {chosen_word}")
break
continue
# Single letter guess
if not choice:
continue
guess = choice.lower()
# Skip if letter already guessed
if guess in guessed_letters:
print("Already guessed. Try another letter.")
continue
guessed_letters += guess
# Check if guess matches any letter in the word
found_letter = False
for i, ch in enumerate(word_lower):
if guess == ch:
mask[i] = chosen_word[i] # Preserve original case
found_letter = True
if not found_letter:
wrong_attempts += 1
print(f"\n\n{library.HANGMANPICS[min(wrong_attempts, max_attempts)]}")
if wrong_attempts >= max_attempts:
print("\n\aYou've lost!!!")
print(f"The word was: {chosen_word}")
break
if "".join(mask).lower() == word_lower:
print("You win!!!")
break
answer = input("Do you want to play again (y/n)? ").strip().lower()
if answer != "y":
break






