WandererXII / lishogi

☗ lishogi.org: the forever free, adless and open source shogi server forked from lichess.org ☗
https://lishogi.org
GNU Affero General Public License v3.0
263 stars 40 forks source link

Impasse positions break the engine #781

Closed IcefoxKishi closed 7 months ago

IcefoxKishi commented 7 months ago

Exact URL where the bug happened https://lishogi.org/analysis/standard/ Steps to reproduce the bug Paste the SFEN +R8/2+NK1+R+P+P1/+P+PPS+P4/6g+b1/7p1/3g5/3+b1g+p1+p/5p3/5k+p2 b G3S3N3L7Pl 1 into the SFEN box. and turn on the engine. What did you expect to happen? The engine giving normal evaluations. What happened instead? The engine gives a #2 evaluation with no next moves given. Operating system and browser version Windows 11 64-bit, Chrome 121.0.6167.86

image

WandererXII commented 7 months ago

Nice find, thanks for reporting this. The issue seems to be caused by engine returning 'bestmove win' to declare win by impasse and we are not handling that. I can either turn off EnteringKingRule or somehow signal the win by impasse, probably by disabling the engine like when checkmate occurs. I'm more inclined to do the former - to not consider impasse in evaluation, since in analysis we allow the play to continue even after impasse.

WandererXII commented 7 months ago

Actually disabling EnteringKingRule won't work, because we want to consider impasse in our evaluation... So our options are either to not analyze past the impasse or turn off EnteringKingRule after we enter impasse, but that might make it a bit confusing.

IcefoxKishi commented 7 months ago

First option seems the most reasonable to me