Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mastermind

Eine Java-Anwendung für klassisches Mastermind mit Konsolenmodus und optionaler Swing-GUI. Der Spieler errät einen geheimen Code aus vier Farben innerhalb von höchstens sieben gültigen Versuchen.

Voraussetzungen

  • JDK 21 oder neuer.
  • Windows Terminal oder eine andere UTF-8- und ANSI-fähige Konsole für die farbige Darstellung.
  • Kein global installiertes Maven nötig; der Maven Wrapper ist Teil des Projekts.
  • Für die GUI sind keine zusätzlichen Bibliotheken nötig; Swing ist Teil des JDK.

Kompilieren, testen und starten

In PowerShell im Projektordner:

.\mvnw.cmd test
.\mvnw.cmd package
java -jar target\mastermind.jar

Die grafische Oberfläche starten:

java -jar target\mastermind.jar --gui

Die verfügbaren Startoptionen anzeigen:

java -jar target\mastermind.jar --help

Farbige ANSI-Ausgabe ist standardmässig aktiv. Für farblose Ausgabe:

java -jar target\mastermind.jar --no-color

Alternativ kann die Umgebungsvariable NO_COLOR auf einen nicht leeren Wert gesetzt werden:

$env:NO_COLOR = '1'
java -jar target\mastermind.jar

--no-color und NO_COLOR betreffen nur die Konsolenausgabe. Mit --gui wird immer die grafische Oberfläche gestartet. Unbekannte Optionen werden mit einer Fehlermeldung und dem Nutzungshinweis abgewiesen.

target/mastermind.jar ist das ausführbare JAR. target/ enthält generierte Build-Dateien und wird nicht versioniert.

Projektstruktur

Der Produktionscode ist nach Verantwortlichkeiten gegliedert: domain enthält die Fachlogik ohne Oberflächenabhängigkeiten, console die Konsolenausgabe, swing die grafische Oberfläche, ui gemeinsame Anzeigetexte und app den Einstiegspunkt. Die Tests spiegeln diese Struktur unter src/test/java/.

Bedienung

Die Farblegende verwendet diese Nummern:

Nummer Farbe
0 Rot
1 Grün
2 Blau
3 Gelb
4 Orange
5 Violett

Ein Tipp besteht aus vier durch Leerzeichen getrennten Nummern, beispielsweise 0 3 3 5. Ungültige Eingaben zählen nicht als Versuch.

Nach jedem gültigen Tipp bedeutet Schwarz eine richtige Farbe an der richtigen Position. Weiss bedeutet eine zusätzliche richtige Farbe an einer falschen Position. Bei mehrfachen Farben wird jede Stelle höchstens einmal bewertet.

Bei einem Volltreffer gewinnt der Spieler sofort. Nach dem siebten nicht gewinnenden Tipp verliert er. Anschliessend zeigt das Programm den Geheimcode und fragt nach einer neuen Runde (j oder n).

GUI-Bedienung

Der GUI-Modus zeigt ein klassisches Brett mit sieben Versuchzeilen. Wähle die vier Farben eines Tipps über die beschriftete Farbpalette; Wiederholungen sind erlaubt. Letzte Farbe löschen entfernt die letzte Wahl. Tipp prüfen wird erst nach vier gewählten Farben aktiv. Die Rückmeldung zeigt pro Zug zuerst schwarze und danach weisse Marken. Die Rückmeldungsfläche ist hellgrau hinterlegt; weisse Marken haben eine kräftige dunkle Umrandung, damit sie gut vom Hintergrund unterscheidbar sind. Nach Sieg oder Niederlage wird der Geheimcode aufgedeckt und ein Dialog bietet eine neue Runde an.

Tests

Die Tests verwenden JUnit 5 und werden über den Maven Wrapper ausgeführt:

.\mvnw.cmd test

Der Testlauf prüft Fachlogik, Duplikatbewertung, Zustandswechsel, defensive Kopien, ungültige Geheimcodes, Konsoleneingaben einschliesslich Eingabeende, Startoptionen, GUI-Farbwahl, Rückmeldedarstellung, Neustartverhalten sowie farbige und farblose Ausgabe.

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages