Repository navigation
18.1.0
Adjudication API
Adds a public adjudication API for the two external game-ending events - flag-fall and resignation - that applies the FIDE "opponent cannot win" draw exception for you, and changes the fifty-move report to count in moves by each player rather than halfmoves. The release is additive: no public type changes shape.
Notable
- New
io.github.dlbbld.ashlarchess.adjudicationpackage.Adjudicatoradjudicates a flag-fall (FIDE 6.9) or resignation (FIDE 5.1.2): the event is a loss unless the would-be winner cannot checkmate by any series of legal moves, in which case it is a draw. Each event has a quick variant (rulesDRAW/LOSSfrom the fast analyzer - bounded latency, for live play) and a full variant (addsUNDETERMINEDfrom the complete analyzer, for game-end and offline use). Verdicts are the newAdjudicationResultenum (DRAW,LOSS,UNDETERMINED). - The README is now generated from
README.template.mdplus executed example source: every shown snippet provably compiles and every shown output is captured from running it, and a drift test fails the build if the committed README does not match a fresh render.
Behavioral
- The fifty-move report (
Reporter) now expresses every no-progress run's counts as moves by each player, written(White/Black), instead of a single halfmove count - matching the FIDE "moves by each player" wording (claimable at50/50, automatic draw at75/75). Consumers that snapshot or parse the printed report text will see the new format.
Internal
- Compiler-warning cleanup: reduced the visibility of package-internal helpers (including two
InsufficientMaterialUtilitybishop predicates) and supplied an explicit charset toIoUtility's stream-to-string conversion.