Action unknown: copypageplugin__copy

Projekt: Mastermind – den Geheimcode knacken

In diesem kurzen Projekt programmierst du das klassische Knobelspiel Mastermind. Du brauchst dazu nur die bekannten Werkzeuge: Variablen, Verzweigungen (if/elif/else), Schleifen (while/for), Listen und das random-Modul.

Mastermind Online

Der Computer denkt sich einen geheimen Code aus 4 Ziffern aus. Jede Ziffer liegt zwischen 1 und 6. Du hast 12 Versuche, den Code zu erraten. Nach jedem Tipp verrät dir der Computer zwei Zahlen:

  • rot = so viele Ziffern sind richtig und an der richtigen Stelle
  • weiss = so viele Ziffern kommen zwar im Code vor, stehen aber an der falschen Stelle

Mehr sagt er nicht – welche Ziffern es sind, musst du selbst herausfinden. Genau das ist der Reiz.

Wir programmieren zwei Varianten des Spiels:

  1. Vereinfachung: Eine Zahl kann höchstens einmal vorkommen.
  2. Original: Eine Zahl kann mehrfach vorkommen. Das macht den Code deutlich anspruchsvoller.

Beispiel (Original). Der geheime Code sei 3 3 1 2 (beachte: die $3$ kommt doppelt vor).

Dein Tipp rot weiss Erklärung
1 2 3 4 0 3 1, 2, 3 sind im Code, aber am falschen Platz; 4 gar nicht
3 3 3 3 2 0 zwei 3er sitzen richtig; die beiden übrigen 3er zählen nicht, weil der Code nur zwei 3er enthält
3 3 1 2 4 0 geknackt!

Die mittlere Zeile ist der springende Punkt: Jede Ziffer im Code kann nur einmal getroffen werden. Das macht die Auswertung interessanter, als sie auf den ersten Blick aussieht.

Aufgabe I: Programmiere eine leicht vereinfachte Version von Mastermind, bei der jede Ziffer im Code höchstens einmal vorkommt. Dein Programm muss:
  1. Den geheimen 4-stelligen Code zufällig erzeugen (Ziffern 1–6, Wiederholungen nicht erlaubt), in Liste speichern. Tipp: Leere Liste erstellen, dann so lange Zufallszahlen hinzufügen, bis vier verschiedene drin sind.
  2. Player auffordern, vierstellige Zahl einzugeben, z.B. 1234.
  3. In Liste mit vier einzelnen Zahlen umwandeln.
  4. Rot und weiss korrekt berechnen und beide ausgeben.
  5. Alles ab 2. Punkt in Endlosschleife while True.
  6. Schleife abbrechen (break), sobald Player richtige Zahlen erraten hat oder $12$ Versuche erreicht wurde.
  7. Finale Ausgabe: „Gewonnen“ oder „Verloren“ sowie Anzahl Versuche.
Aufgabe II: Starte mit einer Kopie von I und passe sie so an, dass eine Zahl mehrfach vorkommen kann (das ist das echte Mastermind). Tipp: Überlege dir zuerst auf Papier, wie du beim Beispiel 3 3 3 3 gegen 3 3 1 2 verhinderst, dass du eine Ziffer doppelt zählst.
  • ef_informatik/mastermind.txt
  • Zuletzt geändert: 2026-09-01 11:36
  • von sca