Packages
islands_client_input
0.1.14
0.1.49
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
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Prompts and accepts a move in the Game of Islands.
Current section
Files
Jump to
Current section
Files
lib/islands/client/input/getter.ex
defmodule Islands.Client.Input.Getter do
alias IO.ANSI.Plus, as: ANSI
alias Islands.Client.{Input, RandomGuess, State}
alias Islands.Tally
@spec get_input(ANSI.ansilist(), State.t()) :: Input.t()
def get_input(prompt, %State{mode: :manual} = _state), do: ANSI.gets(prompt)
def get_input(
prompt,
%State{
mode: :auto,
pause: pause,
tally: %Tally{game_state: :players_set, request: request}
} = _state
) do
ANSI.write(prompt)
Process.sleep(pause)
move =
case request do
{:add_player, _, _, _} -> "all"
{:position_all_islands, _} -> "set"
{:position_island, _, _, _, _} -> "set"
end
IO.puts(move)
move
end
def get_input(prompt, %State{mode: :auto, pause: pause} = state) do
ANSI.write(prompt)
Process.sleep(pause)
guess = RandomGuess.new(state)
IO.puts(guess)
guess
end
end