Page 1 of 1

Illegal move by NEG 1.3

PostPosted: 21 Mar 2023, 10:54
by Roland Chastain
Hello dear forum members.

Here is a game where NEG 1.3 (one of my favourite engines) has played an illegal move.

[Event "?"]
[Site "?"]
[Date "2023.03.21"]
[Round "18"]
[White "Aquilon 0.0.5"]
[Black "NEG 1.3"]
[Result "1-0"]
[ECO "A30"]
[GameDuration "00:00:10"]
[GameEndTime "2023-03-21T10:02:19.660 CET"]
[GameStartTime "2023-03-21T10:02:09.185 CET"]
[Opening "English"]
[PlyCount "75"]
[Termination "illegal move"]
[TimeControl "40/20"]
[Variation "Symmetrical Variation"]

1. c4 {book} c5 {book} 2. Nf3 {book} Nf6 {book} 3. Ng5 Nc6 {-0.14/2 0s} 4. b3
e5 {-0.14/2 0s} 5. e3 Bd6 {-1.10/2 0s} 6. Qf3 a5 {-1.00/2 0s} 7. g3
b6 {-1.00/2 0s} 8. Nc3 Bb7 {-1.00/2 0s} 9. Bd3 g6 {-1.00/2 0s} 10. O-O
h5 {-1.00/2 0s} 11. Bb2 Rb8 {-1.10/2 0s} 12. Ne2 Qc8 {-1.00/2 0s} 13. Qxf6
Rg8 {-1.00/2 0s} 14. Qxd6 Ra8 {-1.00/2 0s} 15. Be4 Qd8 {-1.00/2 0s}
16. Bxc6 {0.56s} Bxc6 {-1.00/2 0s} 17. Qxe5+ {0.56s} Qe7 {0.00/2 0s} 18. Nxf7
Kxf7 {-1.00/2 0s} 19. Qc7 {0.54s} Be4 {-1.00/2 0s} 20. Qf4+ Ke6 {-0.12/2 0s}
21. Qxe4+ Kd6 {-0.10/2 0s} 22. Be5+ Qxe5 {-0.10/2 0s} 23. Qf3 g5 {-1.00/2 0s}
24. d4 Qe6 {0.00/2 0s} 25. dxc5+ bxc5 {0.00/2 0s} 26. Rfd1+ Ke7 {-9.50/2 0s}
27. Nd4 Qf6 {0.00/2 0s} 28. Nc6+ dxc6 {+3.31/2 0s} 29. Rd7+ Kxd7 {0.00/2 0s}
30. Qxf6 Rab8 {-1.00/2 0s} 31. Qf7+ Kd6 {0.00/2 0s} 32. Rd1+ Ke5 {-0.10/2 0s}
33. Qc7+ Kf5 {-0.10/2 0s} 34. Qh7+ Rg6 {-0.10/2 0s} 35. Qf7+ Ke5 {0.00/2 0s}
36. Qxg6 g4 {0.00/2 0s} 37. Rd7 Rc8 {0.00/2 0s}
38. f4+ {Black makes an illegal move: b8c8} 1-0


It seems that the only legal move was an en passant capture, and that the engine didn't see it (if I understand correctly).

Re: Illegal move by NEG 1.3

PostPosted: 21 Mar 2023, 22:03
by H.G.Muller
Well, that explains it, because I never bothered to put e.p. capture (or castling) in N.E.G.'s move generator. So it should think it is checkmated, but it is also not aware of that.

Re: Illegal move by NEG 1.3

PostPosted: 22 Mar 2023, 07:32
by Roland Chastain
I see. Thank you for the explanation.