mehrere Runden möglich
This commit is contained in:
parent
edd5ee450b
commit
af41af9366
|
|
@ -14,6 +14,9 @@ public class hangman {
|
||||||
CSVDatei csv = new CSVDatei("", "Woerter.csv");
|
CSVDatei csv = new CSVDatei("", "Woerter.csv");
|
||||||
ArrayList<String> woerter = csv.lese();
|
ArrayList<String> woerter = csv.lese();
|
||||||
|
|
||||||
|
boolean beenden = false;
|
||||||
|
while (!beenden) {
|
||||||
|
|
||||||
// Wort per zufall auswählen
|
// Wort per zufall auswählen
|
||||||
StringBuilder wort = new StringBuilder(woerter.get((int) (Math.random() * (woerter.size() - 1))));
|
StringBuilder wort = new StringBuilder(woerter.get((int) (Math.random() * (woerter.size() - 1))));
|
||||||
StringBuilder wortLowerCase = new StringBuilder(wort.toString().toLowerCase());
|
StringBuilder wortLowerCase = new StringBuilder(wort.toString().toLowerCase());
|
||||||
|
|
@ -25,87 +28,103 @@ public class hangman {
|
||||||
// Maske ausgeben
|
// Maske ausgeben
|
||||||
System.out.println(maske.toString());
|
System.out.println(maske.toString());
|
||||||
|
|
||||||
int versuche = 12;
|
int versuche = 12;
|
||||||
int zaehler = 0;
|
int zaehler = 0;
|
||||||
boolean geloest = false;
|
boolean geloest = false;
|
||||||
boolean eingabeOkay;
|
|
||||||
|
|
||||||
|
while (!wortLowerCase.toString().equals(maskeVorlage.toString()) && versuche != 0 && !geloest) {
|
||||||
|
|
||||||
while (!wortLowerCase.toString().equals(maskeVorlage.toString()) && versuche != 0 && !geloest) {
|
// Eingabe erfassen und verifizieren
|
||||||
|
String eingabe = "";
|
||||||
// Eingabe erfassen und verifizieren
|
boolean eingabeOkay = false;
|
||||||
String eingabe = "";
|
while (!eingabeOkay) {
|
||||||
eingabeOkay = false;
|
System.out.println(zaehler == 0 ? "Bitte raten Sie einen Buchstaben! (Geben Sie ein \"!\" ein, um zu lösen)" + " | übrige Versuche: " + versuche :
|
||||||
while (!eingabeOkay) {
|
"Bitte raten Sie einen weiteren Buchstaben oder lösen Sie (\"!\")" + " | übrige Versuche: " + versuche);
|
||||||
System.out.println(zaehler == 0 ? "Bitte raten Sie einen Buchstaben! (Geben Sie ein \"!\" ein, um zu lösen)" + " | übrige Versuche: " + versuche :
|
eingabe = scanner.next().trim().toLowerCase();
|
||||||
"Bitte raten Sie einen weiteren Buchstaben oder lösen Sie (\"!\")" + " | übrige Versuche: " + versuche);
|
if (!eingabe.matches("[A-Za-zäöüÄÖÜ!]{1}")) {
|
||||||
eingabe = scanner.next().trim().toLowerCase();
|
System.err.println("Sie dürfen nur einen einzelnen Buchstaben eingeben! (z.B: \"M\" oder \"m\")");
|
||||||
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
|
|
||||||
} else {
|
} 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) {
|
// Ausgabe: Spiel gewonnen / verloren
|
||||||
|
if (zaehler == 0) {
|
||||||
if (wortLowerCase.indexOf(eingabe) == -1) {
|
System.out.println("Sie haben verloren!");
|
||||||
System.out.println("Der geratene Buchstabe ist nicht im Lösungswort enthalten.");
|
} else {
|
||||||
versuche--;
|
System.out.println("Sie haben mit " + zaehler + " Spielzügen gewonnen!");
|
||||||
}
|
|
||||||
|
|
||||||
// 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
|
boolean frage = true;
|
||||||
if (zaehler == 0) {
|
System.out.println("Möchten Sie noch eine Runde spielen? (j/n)");
|
||||||
System.out.println("Sie haben verloren!");
|
while (frage) {
|
||||||
} else {
|
String eingabe = "";
|
||||||
System.out.println("Sie haben mit " + zaehler + " Spielzügen gewonnen!");
|
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) {
|
public static StringBuilder erzeugeMaske(String wort) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue