Packages
hangman_text_client
0.1.49
0.1.87
0.1.86
0.1.85
0.1.84
0.1.83
0.1.82
0.1.81
0.1.80
0.1.79
0.1.78
0.1.77
0.1.76
0.1.75
0.1.74
0.1.73
0.1.72
0.1.71
0.1.70
0.1.69
0.1.68
0.1.67
0.1.66
0.1.65
0.1.64
0.1.63
0.1.62
0.1.61
0.1.60
0.1.59
0.1.58
0.1.57
0.1.56
0.1.55
0.1.54
0.1.53
0.1.52
0.1.51
0.1.50
0.1.49
0.1.48
0.1.47
0.1.46
0.1.45
0.1.44
0.1.43
0.1.42
0.1.41
0.1.40
0.1.39
0.1.38
0.1.37
0.1.36
0.1.35
0.1.34
0.1.33
0.1.32
0.1.31
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
Text client for the Hangman Game.
Current section
Files
Jump to
Current section
Files
lib/hangman/text/client/state.ex
defmodule Hangman.Text.Client.State do
@moduledoc """
Creates a state struct for the _Hangman Game_.
The state struct contains the fields `game_name`, `tally` and `guess`
representing the characteristics of a state in the _Hangman Game_.
"""
alias __MODULE__
alias Hangman.{Engine, Game}
@enforce_keys [:game_name, :tally]
defstruct [:game_name, :tally, :guess]
@typedoc "A state struct for the Hangman Game"
@type t :: %State{
game_name: Game.name(),
tally: Game.tally(),
guess: Game.letter() | nil
}
@doc """
Creates a state struct from a `game_name`.
"""
@spec new(Game.name()) :: t
def new(game_name) do
%State{
game_name: game_name,
tally: Engine.tally(game_name)
}
end
end