Files
wordle/Game.java
maxlm128 02d6252537 TODOs und Game
Ein paar TODOs für die Organisation eingefügt und an der Klasse Game gearbeitet, hauptsächlich an der Methode giveGuess()
2022-03-18 19:09:19 +01:00

82 lines
1.8 KiB
Java

public class Game {
private String word;
private String[] guesses;
// TODO:
Game() {
word = "";
}
public void startGame() {
}
/**
* 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 guess) {
String g = guess;
StringBuilder word = new StringBuilder(this.word);
String s = "";
for (int i = 0; i < word.length(); i++) {
if (guess.charAt(0) == word.charAt(0)) {
word.deleteCharAt(0);
s += "2";
} else {
boolean found = false;
for (int r = 0; r < word.length(); r++) {
if (r != i && guess.charAt(0) == word.charAt(r)) {
s += "1";
found = true;
word.deleteCharAt(r);
break;
}
}
if (!found) {
s += "0";
}
}
guess.replaceFirst(guess, "");
}
if(storeInArray(g)) {
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 i == guesses.length - 1;
}
}
return true;
}
public void startWOTD(String wotd) {
word = wotd;
}
public boolean isGameRunning() {
return word.equals("") || word.equals(null);
}
private void stopGame() {
word = "";
}
}