View Source Islands.Guesses (Islands Guesses v0.1.26)
A guesses struct and functions for the Game of Islands.
The guesses struct contains the fields hits
and misses
representing the
guesses of an opponent in the Game of Islands.
Based on the book Functional Web Development by Lance Halvorsen.
Link to this section Summary
Functions
Adds a hit guess
to the :hits
set or a miss guess
to the :misses
set.
Returns a map assigning to :squares the list of square numbers
from the guesses
's hits.
Returns a map assigning to :squares the list of square numbers
from the guesses
's misses.
Creates a new guesses struct.
Link to this section Types
@type t() :: %Islands.Guesses{ hits: Islands.Island.coords(), misses: Islands.Island.coords() }
A guesses struct for the Game of Islands
@type type() :: :hit | :miss
Type of guess
Link to this section Functions
@spec add(t(), type(), Islands.Coord.t()) :: t() | {:error, atom()}
Adds a hit guess
to the :hits
set or a miss guess
to the :misses
set.
@spec hit_squares(t()) :: %{squares: [Islands.Coord.square()]}
Returns a map assigning to :squares the list of square numbers
from the guesses
's hits.
@spec miss_squares(t()) :: %{squares: [Islands.Coord.square()]}
Returns a map assigning to :squares the list of square numbers
from the guesses
's misses.
@spec new() :: t()
Creates a new guesses struct.
examples
Examples
iex> Islands.Guesses.new()
%Islands.Guesses{
hits: MapSet.new(),
misses: MapSet.new()
}