Current section

Files

Jump to
riichi lib riichi.ex
Raw

lib/riichi.ex

defmodule Riichi do
alias Riichi.Actor
alias Riichi.Engine
alias Riichi.Engine.State
alias Riichi.Event
alias Riichi.Rules
@spec new(Riichi.Rules.t(), Riichi.Wall.t() | nil) :: Engine.step()
defdelegate new(rules, wall \\ nil), to: Engine
@spec new_from_round(Riichi.Rules.t(), State.RoundResult.t() | nil, Riichi.Wall.t() | nil) ::
Engine.step()
defdelegate new_from_round(rules, round_result, wall), to: Engine
@spec process_action(State.t(), Riichi.Action.t()) :: Engine.eval_result()
defdelegate process_action(state, action), to: Engine
@spec valid_actions(State.t()) :: Engine.ActionPredicate.valid_actions()
defdelegate valid_actions(state), to: Engine
@spec skip(State.t()) :: Engine.eval_result()
defdelegate skip(state), to: Engine
@spec force_continue(State.t()) :: Engine.eval_result()
defdelegate force_continue(state), to: Engine
@spec personalize_events(Rules.t(), list(Event.t())) :: %{Actor.t() => list(Event.t())}
defdelegate personalize_events(rules, events), to: Engine
end