import java.util.*; public class GameState { private String word; private char[] hiddenWord; private int errors; private Set 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; } }