public class Game { private String word; private String[] guesses; // 0 wenn es keinen Wert gibt, 1 wenn das letzte Spiel gewonnen wurde und 2 wenn // es verloren wurde private int won; // TODO: Game() { word = ""; won = 0; guesses = new String[4]; } /** * Vergleicht den übergebenen Guess mit dem im Spiel gespeicherten Wort und * überprüft die Korrektheit des Parameter-Strings und gibt eine Zeichenfolge * aus der Korrektheit der Buchstaben zurück (z.B. 10020). Speichert außerdem * den Guess in dem Array guesses[].Gibt keine Information darüber ob das Wort * in der Datenbank existiert oder ob es die korrekte Länge hat. * * @param guess ,der String mit dem Wort * @return Eine Zahlenfolge mit der Korrektheit des Worts */ public String giveGuess(String g) { StringBuilder guess = new StringBuilder(g); StringBuilder word = new StringBuilder(this.word); String s = ""; for (int i = 0; i < this.word.length(); i++) { if (guess.charAt(0) == word.charAt(0)) { word.deleteCharAt(0); s += "2"; } else { boolean found = false; for (int r = 1; r < word.length(); r++) { if (guess.charAt(0) == word.charAt(r)) { s += "1"; found = true; word.deleteCharAt(r); break; } } if (!found) { s += "0"; } } guess.deleteCharAt(0); } if (word.isEmpty()) { System.out.println("öasdlkihg"); won = 1; stopGame(); } else if (storeInArray(guess.toString())) { won = 2; stopGame(); } return s; } /** * Speichert das Wort in der nächsten freien Stelle im Array und gibt danach * zurück, ob das Array voll ist * * @param word * @return Boolean */ private boolean storeInArray(String word) { for (int i = 0; i < guesses.length; i++) { if (guesses[i] == null) { guesses[i] = word; return false; } } return true; } public void startGame(String word) { this.word = word; } public boolean isGameRunning() { return !word.equals("") || !word.equals(null); } private void stopGame() { word = ""; guesses = new String[guesses.length - 1]; } public String[] getGuesses() { return guesses; } public void setGuesses(String[] guesses) { this.guesses = guesses; } public void setWord(String word) { this.word = word; } /** * Gibt 0 zurück wenn das Spiel nicht läuft und noch kein Spiel gespielt wurde * seitdem das Objekt existiert. Gibt 1 zurück wenn das Spiel läuft. Gibt 2 * zurück wenn das letzte beendete Spiel gewonnen wurde und kein Spiel läuft. * Gibt 3 zurück wenn das letzte beendete Spiel verloren wurde und kein Spiel * läuft. * * @return Eine Zahl von 0 bis 3 */ public int getGameStatus() { if (word.equals("") && won == 0) { return 0; } if (!word.equals("")) { return 1; } return won + 1; } }