Islands.Game (Islands Game v0.1.29) View Source
Models a game in the Game of Islands.
Based on the book Functional Web Development by Lance Halvorsen.
Link to this section Summary
Functions
Callback implementation for Access.fetch/2.
Callback implementation for Access.get_and_update/3.
Generates a unique, URL-friendly name such as "bold-frog-8249".
Callback implementation for Access.pop/2.
Generates a random name.
Link to this section Types
Specs
name() :: String.t()
Specs
overview() :: %{
game_name: name(),
player1: overview_player(),
player2: overview_player()
}
Specs
overview_player() :: %{
name: Islands.Player.name(),
gender: Islands.Player.gender()
}
Specs
t() :: %Islands.Game{
name: name(),
player1: Islands.Player.t(),
player2: Islands.Player.t(),
request: Islands.Request.t(),
response: Islands.Response.t(),
state: Islands.State.t()
}
Link to this section Functions
Callback implementation for Access.fetch/2.
Callback implementation for Access.get_and_update/3.
Specs
haiku_name() :: name()
Generates a unique, URL-friendly name such as "bold-frog-8249".
Specs
new(name(), Islands.Player.name(), Islands.Player.gender(), pid()) :: t() | {:error, atom()}
Specs
notify_player(t(), Islands.PlayerID.t()) :: t()
Specs
opponent_id(Islands.PlayerID.t()) :: Islands.PlayerID.t()
Specs
Specs
player_board(t(), Islands.PlayerID.t()) :: Islands.Board.t()
Callback implementation for Access.pop/2.
Specs
random_name() :: name()
Generates a random name.
Specs
update_board(t(), Islands.PlayerID.t(), Islands.Board.t()) :: t()
Specs
update_guesses( t(), Islands.PlayerID.t(), Islands.Guesses.type(), Islands.Coord.t() ) :: t()
Specs
update_player( t(), Islands.PlayerID.t(), Islands.Player.name(), Islands.Player.gender(), pid() ) :: t()
Specs
update_request(t(), Islands.Request.t()) :: t()
Specs
update_response(t(), Islands.Response.t()) :: t()
Specs
update_state(t(), Islands.State.t()) :: t()