D
Guten Tag zusammen. Ich möchte gerne einen Code zu Hangman vorstellen um evtl. Verbesserungsvorschäge zu erhalten.
Hier der Code:
import java.util.*;
public class Hangman {
static Random rand = new Random();
static final String[] words = {"Test", "Hangman", "Java", "Computer", "Programmieren", "Hausaufgabe", "Schlafen", "Schule", "Hochschule", "Qualifikation", "Semester"};
static String chosenWordString = words[rand.nextInt(words.length)].toUpperCase();
static int tries = 9; //Anzahl der Versuche
static char[] chosenWord = new char[chosenWordString.length()];
public static void main(String[] args) {
System.out.println("HANGMAN\n");
game();
}
//Methode zur Konvertierung von Sting zu char nachdem ein Wort aus dem String "words" gewählt wurde
public static void chooseWord() {
for(int i = 0; i < chosenWord.length; i++) {
chosenWord[i] = chosenWordString.charAt(i);
}
}
public static void game() {
chooseWord();
boolean wrongCharTest = true;
int winCount = chosenWord.length;
String usedChars = "";
String wrongChars = "";
char[] rightChars = new char[chosenWord.length];
Scanner input = new Scanner(System.in);
System.out.print("Wort: ");
for(int i = 0; i < rightChars.length; i++) {
rightChars[i] = '_';
System.out.print(rightChars[i] + " "); // Der Abstand ist da, damit man nicht eine Linie hat, sondern Felder die leer sind
}
System.out.println();
while(tries > 0) {
if(winCount > 0) {
System.out.print("Bitte gib einen Buchstaben ein: ");
char playerInput = input.next().toUpperCase().charAt(0);
wrongCharTest = true;
if(!usedChars.contains(Character.toString(playerInput))) {
for(int i = 0; i < chosenWord.length; i++) {
if(chosenWord[i] == playerInput) {
rightChars[i] = playerInput;
wrongCharTest = false;
winCount--;
}
}
usedChars += Character.toString(playerInput);
}
if(wrongCharTest && !wrongChars.contains(Character.toString(playerInput))) {
wrongChars += Character.toString(playerInput);
tries--;
}
System.out.println("Falsche Buchstaben: " + wrongChars);
System.out.println("Noch " + tries + " versuche.");
System.out.println();
System.out.print("Wort: ");
for(int i = 0; i < rightChars.length; i++) {
System.out.print(rightChars[i] + " ");
}
System.out.println();
}
else {
System.out.println("\n\nGewonnen!!!");
break;
}
}
if(winCount != 0) {
System.out.println("\n\nLeider verloren!!!");
}
}
}
Einen schönen Tag noch zusammen.