Tournament Arbiter Adjudication
The Arbiter component provides evaluation for standard FIDE tournament draw claims along game lines.
1. Overview
In tournament chess, players can claim draws under specific technical conditions: 1. Fifty-Move Rule: No pawn moves or piece captures have occurred in the last 50 full moves (100 plies). 2. Threefold Repetition: The exact same board position (identical piece arrangement, active side to move, castling availability, and en passant target square) has occurred at least three times along the current line of play.
2. Using the Arbiter
The Arbiter is instantiated for a Game or accessed via property on Game.
import libscid
# Game repeating positions
pgn = "1. Nf3 Nf6 2. Ng1 Ng8 3. Nf3 Nf6 4. Ng1 Ng8 *"
game = libscid.Game.from_pgn(pgn)
arbiter = game.arbiter
cursor = game.create_cursor().to_game_end()
# Check draw conditions at the current cursor position:
print(f"Can claim threefold repetition: {arbiter.can_claim_threefold_repetition(cursor)}")
print(f"Can claim fifty-move rule: {arbiter.can_claim_fifty_move_rule(cursor)}")
3. Position Clock Inspection
The underlying Position also exposes halfmove clocks and move numbers: