core-0.7.0
Build & Test (NowChessSystems) TeamCity build finished
Summary - Implements the FIDE 50-move draw rule: a player may claim a draw if no pawn move or capture has occurred in the last 50 full moves (100 half-moves) - Draw is not automatic — the eligible player must claim it via a TUI menu shown at the start of their turn - halfMoveClock: Int is threaded through processMove and gameLoop; resets on pawn move, capture, or en passant; increments on all other moves Changes - GameController.scala: extended MoveResult.Moved and MoveResult.MovedInCheck with newHalfMoveClock: Int; added MoveResult.DrawClaimed; added halfMoveClock parameter to processMove and gameLoop; TUI menu shown when clock ≥ 100 - Main.scala: initial gameLoop call passes halfMoveClock = 0 - GameControllerTest.scala: updated all existing pattern matches; added 10 new tests covering clock reset, clock increment, draw claim, and TUI menu behaviour Test plan - processMove: 'draw' with halfMoveClock = 100 → DrawClaimed - processMove: 'draw' with halfMoveClock = 99 → InvalidFormat - Pawn move / capture / en passant → clock resets to 0 - Quiet piece move → clock increments by 1 - MovedInCheck carries updated clock - TUI menu appears when clock ≥ 100; option 1 claims draw, option 2 continues - No TUI menu when clock < 100 - All 197 tests passing Co-authored-by: LQ63 <lkhermann@web.de> Reviewed-on: #9 Co-authored-by: Leon Hermann <lq@blackhole.local> Co-committed-by: Leon Hermann <lq@blackhole.local>
Description
No description provided
Languages
Scala
80.3%
Python
14.7%
Bru
3.5%
HTML
1%
Shell
0.2%
Other
0.2%