Islands Engine v0.2.0 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 process is registered
Allows a player to guess a coordinate
Starts a new game
Positions all islands on a player's board
Positions an island on a player's board
Declares all islands set for a player
Stops a game
Returns the tally of a game for a given player
Link to this section Functions
add_player(game_name, player2_name, player2_pid)
View Source
add_player(String.t(), String.t(), pid()) ::
Islands.Engine.Game.Tally.t() | :ok
add_player(String.t(), String.t(), pid()) :: Islands.Engine.Game.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 process is registered.
guess_coord(game_name, player_id, row, col)
View Source
guess_coord(
String.t(),
Islands.Engine.Game.player_id(),
Islands.Engine.Coord.row(),
Islands.Engine.Coord.col()
) :: Islands.Engine.Game.Tally.t() | :ok
guess_coord( String.t(), Islands.Engine.Game.player_id(), Islands.Engine.Coord.row(), Islands.Engine.Coord.col() ) :: Islands.Engine.Game.Tally.t() | :ok
Allows a player to guess a coordinate.
new_game(game_name, player1_name, player1_pid)
View Source
new_game(String.t(), String.t(), pid()) :: Supervisor.on_start_child()
new_game(String.t(), String.t(), pid()) :: Supervisor.on_start_child()
Starts a new game.
position_all_islands(game_name, player_id)
View Source
position_all_islands(String.t(), Islands.Engine.Game.player_id()) ::
Islands.Engine.Game.Tally.t() | :ok
position_all_islands(String.t(), Islands.Engine.Game.player_id()) :: Islands.Engine.Game.Tally.t() | :ok
Positions all islands on a player's board.
position_island(game_name, player_id, island_type, row, col)
View Source
position_island(
String.t(),
Islands.Engine.Game.player_id(),
Islands.Engine.Island.type(),
Islands.Engine.Coord.row(),
Islands.Engine.Coord.col()
) :: Islands.Engine.Game.Tally.t() | :ok
position_island( String.t(), Islands.Engine.Game.player_id(), Islands.Engine.Island.type(), Islands.Engine.Coord.row(), Islands.Engine.Coord.col() ) :: Islands.Engine.Game.Tally.t() | :ok
Positions an island on a player's board.
set_islands(game_name, player_id)
View Source
set_islands(String.t(), Islands.Engine.Game.player_id()) ::
Islands.Engine.Game.Tally.t() | :ok
set_islands(String.t(), Islands.Engine.Game.player_id()) :: Islands.Engine.Game.Tally.t() | :ok
Declares all islands set for a player.
stop_game(game_name, player_id)
View Source
stop_game(String.t(), Islands.Engine.Game.player_id()) ::
Islands.Engine.Game.Tally.t() | :ok
stop_game(String.t(), Islands.Engine.Game.player_id()) :: Islands.Engine.Game.Tally.t() | :ok
Stops a game.
tally(game_name, player_id)
View Source
tally(String.t(), Islands.Engine.Game.player_id()) ::
Islands.Engine.Game.Tally.t() | :ok
tally(String.t(), Islands.Engine.Game.player_id()) :: Islands.Engine.Game.Tally.t() | :ok
Returns the tally of a game for a given player.