Documentation
đź§ľ Technische Dokumentation: Letter Memory Game
đź§© 1. Ăśberblick
Ziel: Ein klassisches Memory-Spiel mit Buchstaben bei dem der Spieler Paare aufdeckt.
Spielfeld: 4×4 Raster mit 16 Karten (je zwei von A–H).
Interaktion: Mausgesteuert, mit visuellem Feedback und Zeitmessung.
🏗️ 2. Architektur & Ablauf
Initialisierung: App.__init__() startet Pyxel, aktiviert die Maus, mischt die Karten und startet die Hauptschleife.
Spielzustände:
status: aktuell aufgedeckte Karten
matched: dauerhaft aufgedeckte Paare
wait_timer: Verzögerung bei Fehlversuchen
game_over: Spielende-Flag
Hauptmethoden:
reset_game(): Initialisiert Spielzustand und mischt Karten
update(): Verarbeitet Mausereignisse und Spiellogik
draw(): Zeichnet das Spielfeld
draw_game_over(): Zeigt Endbildschirm mit Kommentar
đź§® 3. Datenstrukturen
Name Typ Beschreibung
self.board List[List[str]] 2D-Array mit Buchstaben
self.status List[Tuple[int, int]] Temporär aufgedeckte Karten
self.matched List[Tuple[int, int]] Dauerhaft aufgedeckte Karten
self.LETTERS List[str] 16 Buchstaben (A–H doppelt)
self.wait_timer int Countdown bei Fehlversuch
self.start_time, self.end_time float Zeitmessung
⚙️ 4. Methodenbeschreibung
__init__()
Initialisiert Fenster, Maus, Spielparameter und startet Pyxel-Loop.
reset_game()
Mischt Buchstaben und erstellt das Spielfeld. Setzt alle Zustände zurück.
update()
Verarbeitet Mausereignisse.
PrĂĽft Klickposition und deckt Karten auf.
Vergleicht zwei Karten:
Bei Übereinstimmung → matched aktualisieren.
Bei Nichtübereinstimmung → wait_timer setzen.
Bei vollständigem Match → Spielende.
draw()
Zeichnet das Spielfeld:
Braune RĂĽckseite
Graue Vorderseite mit Buchstaben
Rahmen um jede Karte
draw_game_over()
Zeigt Spielzeit und Kommentar basierend auf Leistung.
Klick startet neues Spiel.
🖱️ 5. Benutzerinteraktion
Klick auf Karte → Karte wird aufgedeckt.
Zwei Karten sichtbar → Vergleich:
Match → bleiben sichtbar.
Kein Match → nach 0.5s wieder verdeckt.
Alle Paare gefunden → Endbildschirm mit Zeit und Bewertung.
Klick nach Spielende → Neustart.
đźš« 6. Fehlerbehandlung
Klicks auĂźerhalb des Spielfelds werden ignoriert.
Bereits aufgedeckte oder gematchte Karten können nicht erneut gewählt werden.
wait_timer verhindert sofortige Interaktion nach Fehlversuch.