PREVIOUS
Chapter
19
Esta funcionalidad es muy sencilla, lo único que hace es analizar el estado previo y el estado posterior a un intento del jugador, para ver si el jugador gana, pierde, si ha adivinado correctamente una letra pero todavía no ganó el juego, si ha adivinado incorrectamente una letra pero todavía no perdió el juego o si ha vuelto a intentar una letra que ya había intentado previamente:
def analyzeNewGuess(oldState: State, newState: State, guess: Guess): GuessResult =
if (oldState.guesses.contains(guess)) GuessResult.Unchanged
else if (newState.playerWon) GuessResult.Won
else if (newState.playerLost) GuessResult.Lost
else if (oldState.word.contains(guess.char)) GuessResult.Correct
else GuessResult.Incorrect