Files
TD3_DEV51_brigitte_aissi/PenduWIlfried/GameState.java
2025-10-08 12:28:34 +02:00

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;
}
}