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.


Log in to reply