Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
xiangqipy.game.Game Class Reference

Runs a game between two Players. More...

Collaboration diagram for xiangqipy.game.Game:
Collaboration graph

Public Member Functions

def __init__ (self, Dict[bindings.PieceColor, Player] players, bindings.GameBoard game_board, MoveReporter status_reporter=msg.TerminalStatusReporter(), List[bindings.Move] move_log=None)
 
GameSummary summary (self)
 
def change_whose_turn (self)
 
def get_valid_move (self, bindings.MoveCollection avail_moves)
 
def player_turn (self, bindings.MoveCollection avail_moves)
 Selects and executes a move.
 
def set_game_state (self, GameState game_state)
 
def set_winner (self, int color)
 
def send_game_info_to_status_reporter (self)
 
GameSummary play (self)
 

Static Public Member Functions

def is_valid_move (bindings.Move proposed_move, List[bindings.Move] avail_moves)
 

Protected Member Functions

def _move_count (self)
 

Protected Attributes

 _game_state
 
 _whose_turn
 
 _board
 
 _players
 
 _status_reporter
 
 _move_log
 
 _game_id
 

Detailed Description

Runs a game between two Players.

Tracks Game state, collects proposed moves, alternates Player turns, maintains on gong GameSummary, and sends info to terminal.

Definition at line 18 of file game.py.

Constructor & Destructor Documentation

◆ __init__()

def xiangqipy.game.Game.__init__ (   self,
Dict[bindings.PieceColor, Player players,
bindings.GameBoard  game_board,
MoveReporter   status_reporter = msg.TerminalStatusReporter(),
List[bindings.Move]   move_log = None 
)

Definition at line 25 of file game.py.

Member Function Documentation

◆ _move_count()

def xiangqipy.game.Game._move_count (   self)
protected

Definition at line 63 of file game.py.

◆ change_whose_turn()

def xiangqipy.game.Game.change_whose_turn (   self)

Definition at line 66 of file game.py.

◆ get_valid_move()

def xiangqipy.game.Game.get_valid_move (   self,
bindings.MoveCollection  avail_moves 
)

Definition at line 73 of file game.py.

◆ is_valid_move()

def xiangqipy.game.Game.is_valid_move ( bindings.Move  proposed_move,
List[bindings.Move]  avail_moves 
)
static

Definition at line 70 of file game.py.

◆ play()

GameSummary xiangqipy.game.Game.play (   self)

Definition at line 127 of file game.py.

◆ player_turn()

def xiangqipy.game.Game.player_turn (   self,
bindings.MoveCollection  avail_moves 
)

Selects and executes a move.

Parameters
avail_movesa bindings.MoveCollection of legal moves

Definition at line 89 of file game.py.

◆ send_game_info_to_status_reporter()

def xiangqipy.game.Game.send_game_info_to_status_reporter (   self)

Definition at line 111 of file game.py.

◆ set_game_state()

def xiangqipy.game.Game.set_game_state (   self,
GameState  game_state 
)

Definition at line 102 of file game.py.

◆ set_winner()

def xiangqipy.game.Game.set_winner (   self,
int  color 
)

Definition at line 105 of file game.py.

◆ summary()

GameSummary xiangqipy.game.Game.summary (   self)

Definition at line 45 of file game.py.

Member Data Documentation

◆ _board

xiangqipy.game.Game._board
protected

Definition at line 34 of file game.py.

◆ _game_id

xiangqipy.game.Game._game_id
protected

Definition at line 40 of file game.py.

◆ _game_state

xiangqipy.game.Game._game_state
protected

Definition at line 32 of file game.py.

◆ _move_log

xiangqipy.game.Game._move_log
protected

Definition at line 39 of file game.py.

◆ _players

xiangqipy.game.Game._players
protected

Definition at line 35 of file game.py.

◆ _status_reporter

xiangqipy.game.Game._status_reporter
protected

Definition at line 36 of file game.py.

◆ _whose_turn

xiangqipy.game.Game._whose_turn
protected

Definition at line 33 of file game.py.


The documentation for this class was generated from the following file: