diff --git a/src/gfn/marc/hangman.java b/src/gfn/marc/hangman.java index 69a3a2f..9225706 100644 --- a/src/gfn/marc/hangman.java +++ b/src/gfn/marc/hangman.java @@ -14,6 +14,9 @@ public class hangman { CSVDatei csv = new CSVDatei("", "Woerter.csv"); ArrayList woerter = csv.lese(); + boolean beenden = false; + while (!beenden) { + // Wort per zufall auswählen StringBuilder wort = new StringBuilder(woerter.get((int) (Math.random() * (woerter.size() - 1)))); StringBuilder wortLowerCase = new StringBuilder(wort.toString().toLowerCase()); @@ -25,87 +28,103 @@ public class hangman { // Maske ausgeben System.out.println(maske.toString()); - int versuche = 12; - int zaehler = 0; - boolean geloest = false; - boolean eingabeOkay; + int versuche = 12; + int zaehler = 0; + boolean geloest = false; + while (!wortLowerCase.toString().equals(maskeVorlage.toString()) && versuche != 0 && !geloest) { - while (!wortLowerCase.toString().equals(maskeVorlage.toString()) && versuche != 0 && !geloest) { - - // Eingabe erfassen und verifizieren - String eingabe = ""; - eingabeOkay = false; - while (!eingabeOkay) { - System.out.println(zaehler == 0 ? "Bitte raten Sie einen Buchstaben! (Geben Sie ein \"!\" ein, um zu lösen)" + " | übrige Versuche: " + versuche : - "Bitte raten Sie einen weiteren Buchstaben oder lösen Sie (\"!\")" + " | übrige Versuche: " + versuche); - eingabe = scanner.next().trim().toLowerCase(); - if (!eingabe.matches("[A-Za-zäöüÄÖÜ!]{1}")) { - System.err.println("Sie dürfen nur einen einzelnen Buchstaben eingeben! (z.B: \"M\" oder \"m\")"); - } else { - // Soll ein Lösungswort eingegeben werden? - if (eingabe.equals("!")) { - System.out.println("Bitte geben Sie das Lösungswort ein! (\"!\" zum Abbrechen)"); - eingabe = scanner.next().trim().toLowerCase(); - if (!eingabe.matches("[A-Za-zäöüÄÖÜ!]+")) { - System.out.println("Es sind nur Buchstaben erlaubt!"); - } else if (eingabe.equals("!")) { - } else { - // Wenn das Lösungswort stimmt - if (eingabe.trim().toLowerCase().equals(wort.toString().toLowerCase())) { - zaehler++; - System.out.println(); - System.out.println("Richtig!"); - geloest = true; - eingabeOkay = true; - - // Wenn das Lösungswort nicht stimmt - } else { - versuche--; - zaehler++; - System.out.println(); - System.out.println("Leider falsch!"); - System.out.println(maske.toString()); - } - } - // Wenn ein Buchstabe geraten wurde + // Eingabe erfassen und verifizieren + String eingabe = ""; + boolean eingabeOkay = false; + while (!eingabeOkay) { + System.out.println(zaehler == 0 ? "Bitte raten Sie einen Buchstaben! (Geben Sie ein \"!\" ein, um zu lösen)" + " | übrige Versuche: " + versuche : + "Bitte raten Sie einen weiteren Buchstaben oder lösen Sie (\"!\")" + " | übrige Versuche: " + versuche); + eingabe = scanner.next().trim().toLowerCase(); + if (!eingabe.matches("[A-Za-zäöüÄÖÜ!]{1}")) { + System.err.println("Sie dürfen nur einen einzelnen Buchstaben eingeben! (z.B: \"M\" oder \"m\")"); } else { - eingabeOkay = true; + // Soll ein Lösungswort eingegeben werden? + if (eingabe.equals("!")) { + System.out.println("Bitte geben Sie das Lösungswort ein! (\"!\" zum Abbrechen)"); + eingabe = scanner.next().trim().toLowerCase(); + if (!eingabe.matches("[A-Za-zäöüÄÖÜ!]+")) { + System.out.println("Es sind nur Buchstaben erlaubt!"); + } else if (eingabe.equals("!")) { + } else { + // Wenn das Lösungswort stimmt + if (eingabe.trim().toLowerCase().equals(wort.toString().toLowerCase())) { + zaehler++; + System.out.println(); + System.out.println("Richtig!"); + geloest = true; + eingabeOkay = true; + + // Wenn das Lösungswort nicht stimmt + } else { + versuche--; + zaehler++; + System.out.println(); + System.out.println("Leider falsch!"); + System.out.println(maske.toString()); + } + } + // Wenn ein Buchstabe geraten wurde + } else { + eingabeOkay = true; + } } } + + if (!geloest) { + + if (wortLowerCase.indexOf(eingabe) == -1) { + System.out.println("Der geratene Buchstabe ist nicht im Lösungswort enthalten."); + versuche--; + } + + // Eingabe verarbeiten + while (wortLowerCase.indexOf(eingabe) != -1) { + maske.replace(wortLowerCase.indexOf(eingabe), (wortLowerCase.indexOf(eingabe) + 1), + String.valueOf(wort.charAt(wortLowerCase.indexOf(eingabe)))); + wortLowerCase.replace(wortLowerCase.indexOf(eingabe), (wortLowerCase.indexOf(eingabe) + 1), "*"); + } + + + // Zaehler herunterzählen + zaehler++; + + // Maske ausgeben + System.out.println(); + System.out.println(maske.toString()); + } } - if (!geloest) { - - if (wortLowerCase.indexOf(eingabe) == -1) { - System.out.println("Der geratene Buchstabe ist nicht im Lösungswort enthalten."); - versuche--; - } - - // Eingabe verarbeiten - while (wortLowerCase.indexOf(eingabe) != -1) { - maske.replace(wortLowerCase.indexOf(eingabe), (wortLowerCase.indexOf(eingabe) + 1), - String.valueOf(wort.charAt(wortLowerCase.indexOf(eingabe)))); - wortLowerCase.replace(wortLowerCase.indexOf(eingabe), (wortLowerCase.indexOf(eingabe) + 1), "*"); - } - - - // Zaehler herunterzählen - zaehler++; - - // Maske ausgeben - System.out.println(); - System.out.println(maske.toString()); + // Ausgabe: Spiel gewonnen / verloren + if (zaehler == 0) { + System.out.println("Sie haben verloren!"); + } else { + System.out.println("Sie haben mit " + zaehler + " Spielzügen gewonnen!"); } - } - // Ausgabe: Spiel gewonnen / verloren - if (zaehler == 0) { - System.out.println("Sie haben verloren!"); - } else { - System.out.println("Sie haben mit " + zaehler + " Spielzügen gewonnen!"); - } + boolean frage = true; + System.out.println("Möchten Sie noch eine Runde spielen? (j/n)"); + while (frage) { + String eingabe = ""; + eingabe = scanner.next().trim().toLowerCase(); + if (eingabe.matches("[jn]{1}")) { + if (eingabe.equals("n")) { + beenden = true; + frage = false; + } else { + frage = false; + } + } else { + System.out.println("Bitte geben Sie \"j\" für ein weiteres Spiel oder \"n\" zum Beenden ein"); + } + } + } } public static StringBuilder erzeugeMaske(String wort) {