ritchie/model/action

Action by the in-turn player.

Types

pub type Action {
  ActionDiscard(discard.Discard)
  ActionAnkan(tile.Tile)
  ActionKakan(tile.Tile)
  ActionTsumoAgari(tile.Tile)
  ActionAbortNineKinds
}

Constructors

  • ActionDiscard(discard.Discard)

    Discard a tile, see Discard. The called_by field is implied and can be safely ignored here.

  • ActionAnkan(tile.Tile)

    Declare an Ankan (4 tiles in closed hand meld)

  • ActionKakan(tile.Tile)

    Declare a Kakan (extends a pon with drawn tile)

  • ActionTsumoAgari(tile.Tile)

    Win by self-draw.

  • ActionAbortNineKinds

    Abort by nine kinds of terminals.

Values

pub fn from_meld(meld: meld.Meld) -> option.Option(Action)

Constructs the action corresponding to Kakan/Ankan.

pub fn is_kan(action: Action) -> Bool

Does this action produce a Kan?

pub fn is_terminal(action: Action) -> Bool

Does this action end the round?

pub fn tile(action: Action) -> option.Option(tile.Tile)
✨ Search Document