Islands Engine v0.2.24 Islands.Engine View Source
Models the Game of Islands.
Based on the book Functional Web Development by Lance Halvorsen.
Link to this section Summary
Functions
Adds the second player of a game.
Ends a game.
Returns a sorted list of registered game names.
Returns the pid
of the game server process registered under the
given game_name
, or nil
if no such process is registered.
Allows the specified player to guess a coordinate.
Starts a new game.
Positions all islands on the specified player's board.
Positions an island on the specified player's board.
Declares all islands set for the specified player.
Stops a game.
Returns the tally of the game for the specified player.
Link to this section Functions
add_player(game_name, player2_name, gender, player2_pid)
View Source
add_player(String.t(), String.t(), Islands.Player.gender(), pid()) ::
Islands.Tally.t() | :ok
add_player(String.t(), String.t(), Islands.Player.gender(), pid()) :: Islands.Tally.t() | :ok
Adds the second player of a game.
end_game(game_name)
View Source
end_game(String.t()) :: :ok
end_game(String.t()) :: :ok
Ends a game.
game_names()
View Source
game_names() :: [String.t()]
game_names() :: [String.t()]
Returns a sorted list of registered game names.
game_pid(game_name) View Source
Returns the pid
of the game server process registered under the
given game_name
, or nil
if no such process is registered.
guess_coord(game_name, player_id, row, col)
View Source
guess_coord(
String.t(),
Islands.PlayerID.t(),
Islands.Coord.row(),
Islands.Coord.col()
) :: Islands.Tally.t() | :ok
guess_coord( String.t(), Islands.PlayerID.t(), Islands.Coord.row(), Islands.Coord.col() ) :: Islands.Tally.t() | :ok
Allows the specified player to guess a coordinate.
new_game(game_name, player1_name, gender, player1_pid)
View Source
new_game(String.t(), String.t(), Islands.Player.gender(), pid()) ::
Supervisor.on_start_child()
new_game(String.t(), String.t(), Islands.Player.gender(), pid()) :: Supervisor.on_start_child()
Starts a new game.
position_all_islands(game_name, player_id)
View Source
position_all_islands(String.t(), Islands.PlayerID.t()) ::
Islands.Tally.t() | :ok
position_all_islands(String.t(), Islands.PlayerID.t()) :: Islands.Tally.t() | :ok
Positions all islands on the specified player's board.
position_island(game_name, player_id, island_type, row, col)
View Source
position_island(
String.t(),
Islands.PlayerID.t(),
Islands.Island.type(),
Islands.Coord.row(),
Islands.Coord.col()
) :: Islands.Tally.t() | :ok
position_island( String.t(), Islands.PlayerID.t(), Islands.Island.type(), Islands.Coord.row(), Islands.Coord.col() ) :: Islands.Tally.t() | :ok
Positions an island on the specified player's board.
set_islands(game_name, player_id)
View Source
set_islands(String.t(), Islands.PlayerID.t()) :: Islands.Tally.t() | :ok
set_islands(String.t(), Islands.PlayerID.t()) :: Islands.Tally.t() | :ok
Declares all islands set for the specified player.
stop_game(game_name, player_id)
View Source
stop_game(String.t(), Islands.PlayerID.t()) :: Islands.Tally.t() | :ok
stop_game(String.t(), Islands.PlayerID.t()) :: Islands.Tally.t() | :ok
Stops a game.
tally(game_name, player_id)
View Source
tally(String.t(), Islands.PlayerID.t()) :: Islands.Tally.t() | :ok
tally(String.t(), Islands.PlayerID.t()) :: Islands.Tally.t() | :ok
Returns the tally of the game for the specified player.