forked from menault/TD3_DEV51_Qualite_Algo
80 lines
2.0 KiB
Java
80 lines
2.0 KiB
Java
import java.util.*;
|
|
|
|
public class GameState {
|
|
|
|
private String word;
|
|
private char[] hiddenWord;
|
|
private int errors;
|
|
private Set<Character> triedLetters;
|
|
private static final int MAX_ERRORS = 9;
|
|
|
|
public GameState(String wordToGuess) {
|
|
this.word = wordToGuess.toLowerCase();
|
|
this.hiddenWord = new char[word.length()];
|
|
Arrays.fill(hiddenWord, '_');
|
|
this.triedLetters = new HashSet<>();
|
|
this.errors = 0;
|
|
}
|
|
|
|
/*Fonction pour essayer une lettre*/
|
|
public void tryLetter(char letter) {
|
|
letter = Character.toLowerCase(letter);
|
|
triedLetters.add(letter);
|
|
boolean found = false;
|
|
|
|
for (int i = 0; i < word.length(); i++) {
|
|
if (word.charAt(i) == letter) {
|
|
hiddenWord[i] = letter;
|
|
found = true;
|
|
}
|
|
}
|
|
|
|
if (!found) {
|
|
errors++;
|
|
}
|
|
}
|
|
|
|
/*Fonction pour vérifier si une lettre à déjà été essayé*/
|
|
public boolean hasTriedLetter(char letter) {
|
|
letter = Character.toLowerCase(letter);
|
|
return triedLetters.contains(letter);
|
|
}
|
|
|
|
/*Fonction pour vérifier si on a gagné*/
|
|
public boolean isWon() {
|
|
for (char c : hiddenWord) {
|
|
if (c == '_') {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/*Fonction pour vérifier si on a perdu*/
|
|
public boolean isLost() {
|
|
return errors >= MAX_ERRORS;
|
|
}
|
|
|
|
/*Fonction pour voir le nombre d'erreur*/
|
|
public int getErrors() {
|
|
return errors;
|
|
}
|
|
|
|
/*Fonction pour voir le mot caché*/
|
|
public String getHiddenWord() {
|
|
StringBuilder sb = new StringBuilder();
|
|
for (int i = 0; i < hiddenWord.length; i++) {
|
|
sb.append(hiddenWord[i]);
|
|
if (i < hiddenWord.length - 1) {
|
|
sb.append(' ');
|
|
}
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
/*Fonction pour voir le mot*/
|
|
public String getWord() {
|
|
return word;
|
|
}
|
|
}
|