basil00 / Fathom

Syzygy TB probe tool.
MIT License
17 stars 26 forks source link

Do not allow pawns on backrank #8

Closed niklasf closed 8 years ago

niklasf commented 8 years ago

Example:

./fathom.linux --path syzygy "1P6/4k3/8/8/8/8/4K3/8 w - - 0 1"

image

Expected / after fix:

error: unable to probe tablebase; position invalid, illegal or not in tablebase

Actual output:

[Event ""]
[Site ""]
[Date "??"]
[Round "-"]
[White "Syzygy"]
[Black "Syzygy"]
[Result "1-0"]
[FEN "1P6/4k3/8/8/8/8/4K3/8 w - - 0 1"]
[WDL "Win"]
[DTZ "1"]
[WinningMoves "Kd1, Kd3, Ke3, b1=Q, b1=R"]
[DrawingMoves "Ke1, Kf1, Kd2, Kf2, Kf3, b1=N, b1=B"]
[LosingMoves ""]

1. b1=Q Kd6 2. Kd3 Kc5 3. Ke4 Kc4 4. Qc1+ Kb3 5. Kd3 Ka2 6. Kd4 Kb3 7. Qb1+ Ka3 8. Kc3 Ka4 9. Qb4# 1-0

Notice the funny move b1=Q because the bitboard wraps.

basil00 commented 8 years ago

Thanks,

I am wondering if the is_valid input sanitization should be a config option? E.g. the fathom.exe tool enables it, but engines disable it for speed.