Hangman
-
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.