import random import time # Spielfeld initialisieren def erstelle_spielfeld(): karten = [1, 1, 2, 2, 3, 3, 4, 4] # Paare von Karten random.shuffle(karten) # Karten mischen return karten # Spielfeld anzeigen def zeige_spielfeld(karten, aufgedeckt): for i in range(len(karten)): if i in aufgedeckt: print(f"[{karten[i]}]", end=" ") else: print("[X]", end=" ") print() # Neue Zeile # Hauptspiel def memory_spiel(): karten = erstelle_spielfeld() aufgedeckt = set() # Speichert die Indizes der aufgedeckten Karten versuche = 0 while len(aufgedeckt) < len(karten): # Solange nicht alle Karten aufgedeckt sind zeige_spielfeld(karten, aufgedeckt) print(f"Versuche: {versuche}") # Spieler wählt zwei Karten while True: try: wahl1 = int(input("Erste Karte (0-7): ")) wahl2 = int(input("Zweite Karte (0-7): ")) if 0 <= wahl1 < len(karten) and 0 <= wahl2 < len(karten) and wahl1 != wahl2: if wahl1 not in aufgedeckt and wahl2 not in aufgedeckt: break else: print("Wähle nur verdeckte Karten!") else: print("Ungültige Eingabe! Wähle zwei verschiedene Zahlen zwischen 0 und 7.") except ValueError: print("Bitte gib eine Zahl ein!") # Karten kurz aufdecken temp_aufgedeckt = aufgedeckt.copy() temp_aufgedeckt.add(wahl1) temp_aufgedeckt.add(wahl2) zeige_spielfeld(karten, temp_aufgedeckt) time.sleep(1) # Kurze Pause, damit der Spieler die Karten sieht # Prüfen, ob sie übereinstimmen if karten[wahl1] == karten[wahl2]: print("Treffer!") aufgedeckt.add(wahl1) aufgedeckt.add(wahl2) else: print("Kein Treffer.") versuche += 1 print(f"Spiel beendet! Versuche: {versuche}") # Spiel starten if __name__ == "__main__": print("Willkommen beim Memory-Spiel!") memory_spiel()