Hallo, wir sollen ein Programm für ein Hangman programmieren
Hab jetzt schon folgenden langen Code:
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class HangmanGame {
public static final String[] Words = { //Vordefinierte Wörter für das Hangman Spiel
"Hallo", "Welt", "Programmieren", "Java", "Python",
"PHP","Hangman","FH","Studieren","Zoom","Deutschland",
"Bayern","Coden","Eclipse","Error","Discord","String","Arrays",
"Lektion8","Informatik"
};
public static final Random RANDOM = new Random();
public static int MaxVersuche = 15; //Maximale Versuche -> Auf 15 bestimmt
String wort;
char[] wordFound;
int eingegeben;
private ArrayList < String > letters = new ArrayList < > ();
String nextWordToFind() {
return Words[RANDOM.nextInt(Words.length)];
}
public void newGame() { //Methode für das neue Spiel
eingegeben = 0;
letters.clear();
wort = nextWordToFind();
wordFound = new char[wort.length()];
for (int i = 0; i < wordFound.length; i++) {
wordFound[i] = '_';
}
}
public boolean wordFound() {
return wort.contentEquals(new String(wordFound));
}
// Method updating the word found after user entered a character
private void enter(String w) {
// we update only if c has not already been entered
if (!letters.contains(w)) {
if (wort.contains(w)) {
int index = wort.indexOf(w);
while (index >= 0) {
wordFound[index] = w.charAt(0);
index = wort.indexOf(w, index + 1);
}
} else {
eingegeben++;
}
letters.add(w);
}
}
private String wordFoundContent() {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < wordFound.length; i++) {
builder.append(wordFound[i]);
if (i < wordFound.length - 1) {
builder.append(" ");
}
}
return builder.toString();
}
// Play method for our Hangman Game
public void play() {
try (Scanner input = new Scanner(System.in)) {
while (eingegeben < MaxVersuche) {
System.out.println("Starte mit einem Buchstaben: ");
String str = input.next();
if (str.length() > 1) {
str = str.substring(0, 1);
}
enter(str);
System.out.println("\n" + wordFoundContent());
if (wordFound()) {
System.out.println("Gewonnen!");
break;
} else {
System.out.println((eingegeben)+". Versuch: " );
}
}
if (eingegeben == MaxVersuche) {
System.out.println("Leider Verloren!");
System.out.println("Das gesuchte Wort war: " + wort);
}
}
}
public static void main(String[] args) {
System.out.println("Hangman Spiel");
HangmanGame hangmanGame = new HangmanGame();
hangmanGame.newGame();
hangmanGame.play();
}
}
Kann ich den noch irgendwo kürzen??