cshogi.usi package
Module contents
- class cshogi.usi.Engine(cmd, connect=True, debug=False)[source]
Bases:
object
A class to interface with a USI (Universal Shogi Interface) engine.
- Parameters:
cmd (str) – The command to launch the engine.
connect (bool) – Whether to connect to the engine upon initialization, default is True.
debug (bool) – Whether to enable debug mode, default is False.
- connect(listener=None)[source]
Connects to the USI engine.
- Parameters:
listener (Callable | None) – Optional callback to handle engine responses.
- gameover(result=None, listener=None)[source]
Sends the ‘gameover’ command with the result to notify the engine that the game is over.
- Parameters:
result (str | None) – Result of the game.
listener (Callable | None) – Optional callback to handle engine responses.
- go(ponder=False, btime=None, wtime=None, byoyomi=None, binc=None, winc=None, nodes=None, listener=None)[source]
Sends the ‘go’ command to initiate a search for the best move.
- Parameters:
ponder (bool) – Whether to enable pondering, default is False.
btime (int | None) – Black’s remaining time in milliseconds.
wtime (int | None) – White’s remaining time in milliseconds.
byoyomi (int | None) – Time control setting in milliseconds.
binc (int | None) – Black’s time increment per move in milliseconds.
winc (int | None) – White’s time increment per move in milliseconds.
nodes (int | None) – Limit of the number of nodes to search.
listener (Callable | None) – Optional callback to handle engine responses.
- Returns:
The best move found and optional ponder move.
- Return type:
Tuple[str, str | None]
- go_mate(byoyomi=None, listener=None)[source]
Sends the ‘go mate’ command to initiate a search for checkmate.
- Parameters:
byoyomi (int | None) – Time control setting in milliseconds, if None, defaults to ‘infinite’.
listener (Callable | None) – Optional callback to handle engine responses.
- Returns:
Result of the checkmate search.
- isready(listener=None)[source]
Checks if the engine is ready.
- Parameters:
listener (Callable | None) – Optional callback to handle engine responses.
- ponderhit(listener=None)[source]
Sends the ‘ponderhit’ command to notify the engine that its pondered move was played.
- Parameters:
listener (Callable | None) – Optional callback to handle engine responses.
- position(moves=None, sfen='startpos', listener=None)[source]
Sets the position on the engine.
- Parameters:
moves (List[str]) – List of moves to make from the starting position.
sfen (str) – The SFEN string representing the starting position, default is “startpos”.
listener (Callable | None) – Optional callback to handle engine responses.
- quit(listener=None)[source]
Sends the ‘quit’ command to the engine and waits for it to exit.
- Parameters:
listener (Callable | None) – Optional callback to handle engine responses.
- setoption(name, value, listener=None)[source]
Sets an option on the engine.
- Parameters:
name (str) – The name of the option to set.
value (str | int) – The value to set the option to.
listener (Callable | None) – Optional callback to handle engine responses.
- stop(listener=None)[source]
Sends the ‘stop’ command to stop the current search or pondering.
- Parameters:
listener (Callable | None) – Optional callback to handle engine responses.
- class cshogi.usi.InfoListener(mate_score=100000, listner=None)[source]
Bases:
object
Listener class to obtain the content of the info command returned by the USI engine.
- Parameters:
mate_score (int) – The score representing a mate condition, default is 100000.
listener – A callable that may be provided to interact with the listener, default is None.
listner (Callable | None) –
- Example:
info_listener = InfoListener() engine.go(byoyomi=1000, listener=info_listener.listen()) print(info_listener.score) print(info_listener.pv) print(info_listener.info)
- property bestmove: str
Gets the best move from the USI engine information.
- Returns:
The best move.
- property info: Dict
Gets detailed information regarding the best move from the USI engine.
- Returns:
A dictionary containing detailed information of the best move.
- listen()[source]
Resets the listener’s state and returns itself.
- Returns:
The listener itself.
- Return type:
- property mate_score: int
Gets the mate score.
- Returns:
The mate score.
- property pv: List[str]
Gets the Principal Variation (PV) for the best move.
- Returns:
A list containing the Principal Variation.
- re_bestmove = re.compile('bestmove ([^ ]+).*$')
- re_info = re.compile('^info (.* |)score (cp|mate) ([+\\-0-9]+) (.* |)pv ([^ ]+)(.*)$')
- property score: int
Gets the score for the best move.
- Returns:
The score for the best move.
- class cshogi.usi.MultiPVListener(listner=None)[source]
Bases:
object
Listener class to obtain the content of the MultiPV info command returned by the USI engine.
- Parameters:
listener – A callable to interact with the listener, default is None.
listner (Callable | None) –
- Example:
multipv_listener = MultiPVListener() engine.go(byoyomi=1000, listener=multipv_listener.listen()) print(info_listener.info)
- property info: List[Dict]
Gets detailed information regarding all captured MultiPVs from the USI engine.
- Returns:
A list of dictionaries containing detailed information of the MultiPVs.
- listen()[source]
Resets the listener’s state related to MultiPV and returns itself.
- Returns:
The listener itself.
- Return type:
- re_multipv = re.compile('^info.* multipv ([0-9]+).* pv .*$')