Files
coorl-lost-cities/src/coolrl_lost_cities/games/classic/game.pxd
T

111 lines
4.1 KiB
Cython

ctypedef struct UndoRecord:
int phase_id
int player
int action_id
int pending_before
bint terminal_before
int turn_count_before
int slot
int play
int card
int color
int last_numeric_before
int handshake_count_before
int numeric_sum_before
int expedition_score_before
int total_score_before
cdef class GameState:
cdef public object config
cdef int n_colors
cdef int n_ranks
cdef int min_rank
cdef int n_handshakes
cdef int hand_size
cdef int expedition_penalty
cdef int bonus_threshold
cdef int bonus_amount
cdef int total_cards
cdef int cards_per_color
cdef int stride
cdef int* deck_cards
cdef int deck_len
cdef int* hand_cards
cdef int hand_lens[2]
cdef int* expedition_cards
cdef int* expedition_lens
cdef int* discard_cards
cdef int* discard_lens
cdef int* last_numeric_ranks
cdef int* handshake_counts
cdef int* numeric_sums
cdef int* expedition_scores
cdef int total_scores[2]
cdef UndoRecord* undo_stack
cdef int undo_stack_len
cdef int undo_stack_capacity
cdef public int current_player
cdef int phase_id
cdef public int pending_discarded_color
cdef public int turn_count
cdef public bint terminal
cdef void _configure(self, object config) except *
cdef void _clear(self) noexcept
cpdef GameState clone(self)
cpdef list legal_card_mask(self)
cpdef list legal_draw_mask(self)
cpdef list legal_mask(self)
cpdef list unified_legal_mask(self)
cpdef object unified_legal_mask_np(self)
cpdef list legal_actions(self)
cpdef list unified_legal_actions(self)
cpdef int from_unified_action(self, int action_id)
cpdef apply_action(self, int action_id)
cpdef apply_unified_action(self, int action_id)
cpdef object apply_action_with_undo(self, int action_id)
cpdef object apply_unified_action_with_undo(self, int action_id)
cpdef undo_action(self, object undo)
cpdef int push_action(self, int action_id)
cpdef int push_unified_action(self, int action_id)
cpdef int pop_action(self)
cpdef bint can_play_encoded_card(self, int player, int card)
cpdef int last_numeric_rank(self, int player, int color)
cpdef int expedition_score(self, int player, int color)
cpdef int total_score(self, int player)
cpdef int score_diff(self, int player=*)
cdef bint _is_legal_action_c(self, int action_id) noexcept
cdef int _legal_actions_c(self, int* out_actions) noexcept
cdef int _unified_legal_actions_c(self, int* out_actions) noexcept
cdef bint _can_play_encoded_card_c(self, int player, int card) noexcept
cdef void _fill_undo_c(self, int action_id, UndoRecord* undo) noexcept
cdef void _apply_action_with_undo_c(self, int action_id, UndoRecord* undo) except *
cdef void _apply_action_unchecked_c(self, int action_id) except *
cdef void _ensure_undo_capacity_c(self) except *
cdef int _push_action_c(self, int action_id) except *
cdef int _pop_action_c(self) except *
cdef object _undo_to_tuple(self, UndoRecord* undo)
cdef void _tuple_to_undo(self, object data, UndoRecord* undo) except *
cdef void _apply_card_action(self, int action_id) except *
cdef void _apply_draw_action(self, int action_id) except *
cdef void _undo_action_c(self, UndoRecord* undo) except *
cdef void _undo_card_action_c(self, UndoRecord* undo) except *
cdef void _undo_draw_action_c(self, UndoRecord* undo) except *
cdef void _recompute_score_caches(self) noexcept
cdef int _score_from_summary_c(self, int length, int handshakes, int numeric_sum) noexcept
cdef bint _has_any_legal_draw(self) noexcept
cdef int _hand_index(self, int player, int slot)
cdef int _expedition_len_index(self, int player, int color)
cdef int _expedition_index(self, int player, int color, int index)
cdef int _discard_index(self, int color, int index)
cdef int _encode_card(self, int color, int rank)
cdef int _card_color(self, int card)
cdef int _card_rank(self, int card)
cdef object _card_snapshot(self, int card)
cdef object _card_obj(self, int card)