Coder Social home page Coder Social logo

Illegal moves 2 about apollo HOT 18 OPEN

stnevans avatar stnevans commented on July 2, 2024
Illegal moves 2

from apollo.

Comments (18)

stnevans avatar stnevans commented on July 2, 2024

When I paste the commands shown in the debug log, the issue doesn't reproduce, so I'm not immediately sure what's causing the issue. Which exact binary are you using?

from apollo.

stnevans avatar stnevans commented on July 2, 2024

Ignore that, I'm now able to reproduce. I understand the problem and will work on getting a fix.

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

The 64-bit (POPCNT) one, CRC-32: 5E1414A5. I just retested with Hash sizes 256, 128 and the default 32. Same illegal move a1a1 in every case.

edit: Ah, I've been ninja'd. ;) Standing by for the fix.

from apollo.

stnevans avatar stnevans commented on July 2, 2024

I rolled out something I believe should fix the issue. I'm not 100% confident in the robustness of the patch, so I'll look into it more when I get some time. If this doesn't fix it, I know how to do so.
Can you confirm/deny that the fix worked?

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

Need a Makefile for Windows, something that would work with MSYS2 and Cygwin. Tried making my own and got tons of errors.

from apollo.

stnevans avatar stnevans commented on July 2, 2024

I was planning on adding a Makefile at some point, but for me copying and pasting the compilation works fine.
Regardless, I actually updated the files under Release 1.2.1. Should have mentioned that.

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

The new exec (CRC-32 388D09A3) doesn't fix it. Besides the usual 40/4 and 512 hash I tried 40/20 and 32 hash, same result (a1a1).

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

Ditto for apollopocnt.exe CRC-32 165E3B63.

from apollo.

stnevans avatar stnevans commented on July 2, 2024

Interesting. I'll take a look at it in the morning. Thank you very much for being patient with me and for reporting this bug.

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

No problemo.

An interesting find: if you start the game from the position where it wants to play a1a1, it chooses to play the queen back to d1 and the game goes on:

[Event "?"]
[Site "?"]
[Date "2018.10.01"]
[Round "?"]
[White "Apollo 1.21 64-bit"]
[Black "__Thinker"]
[Result "1/2-1/2"]
[FEN "r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9"]
[GameDuration "00:00:30"]
[GameEndTime "2018-10-01T00:07:35.410 Eastern Daylight Time"]
[GameStartTime "2018-10-01T00:07:05.270 Eastern Daylight Time"]
[PlyCount "8"]
[SetUp "1"]
[Termination "adjudication"]
[TimeControl "40/120"]

1... Bd7 {3.8s} 2. Qd1 {0.00/15 5.1s} c5 {2.7s} 3. Qd3 {0.00/10 3.2s} Qb6 {2.7s}
4. g3 {0.00/10 5.4s} Nf6 {3.6s}
5. h3 {0.00/10 3.5s, Draw by adjudication: user decision} 1/2-1/2

Debug log:

<Apollo 1.21 64-bit(7): Apollo v1.2.1 by Stuart Nevans Locke
<Apollo 1.21 64-bit(7): id name Apollo Release 1.2.1
<Apollo 1.21 64-bit(7): id author Stuart Nevans Locke
<Apollo 1.21 64-bit(7): option name Hash type spin default 32 min 1 max 1048576
<Apollo 1.21 64-bit(7): uciok
>Apollo 1.21 64-bit(7): setoption name Hash value 512
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): Thinker: 5.4D (NAM 047, 1500, for 64-bit architecture) Copyright (c) Kerwin Medina
<__Thinker(8): Thinker: uie pid sco lme
<__Thinker(8): Thinker: Freeware. No warranties whatsoever.
<__Thinker(8): feature setboard=1
>__Thinker(8): accepted setboard
<__Thinker(8): feature done=1
>__Thinker(8): accepted done
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): ucinewgame
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9
>__Thinker(8): new
>__Thinker(8): force
>__Thinker(8): b2b3
>__Thinker(8): setboard r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9
>__Thinker(8): level 40 2 0
>__Thinker(8): post
>__Thinker(8): easy
>__Thinker(8): time 12000
otim 12000
>__Thinker(8): go
<__Thinker(8): move g4d7  
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9 moves g4d7
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): 16 0 377 7424682 g4d7  c3b5  d4f3  g2f3  
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): go wtime 120000 btime 116221 movestogo 40
<Apollo 1.21 64-bit(7): info depth 1 score cp 6 nodes 44 nps 171028 time 0 pv a4d1
<Apollo 1.21 64-bit(7): info depth 2 score cp 6 nodes 89 nps 161777 time 0 pv a4d1 d7g4
<Apollo 1.21 64-bit(7): info depth 3 score cp 6 nodes 169 nps 123947 time 1 pv a4d1 d7g4 d1a4
<Apollo 1.21 64-bit(7): info depth 4 score cp 0 nodes 287 nps 117487 time 2 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 5 score cp 0 nodes 322 nps 81987 time 3 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 6 score cp 0 nodes 638 nps 90372 time 7 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 7 score cp 0 nodes 1627 nps 115101 time 14 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 8 score cp 0 nodes 5382 nps 161233 time 33 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 9 score cp 0 nodes 7366 nps 120011 time 61 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 10 score cp 0 nodes 8578 nps 85828 time 99 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 11 score cp 0 nodes 22004 nps 114649 time 191 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 12 score cp 0 nodes 44730 nps 119015 time 375 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 13 score cp 0 nodes 99082 nps 126624 time 782 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 14 score cp 0 nodes 146981 nps 108389 time 1356 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): info depth 15 score cp 0 nodes 258300 nps 109232 time 2364 pv a4d1 d7g4 d1a4 g4d7
<Apollo 1.21 64-bit(7): bestmove a4d1
>__Thinker(8): time 11622
otim 11491
>__Thinker(8): a4d1
<__Thinker(8): move c7c5  
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9 moves g4d7 a4d1 c7c5
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): 15 0 273 5358655 c7c5  f3d4  c5d4  
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): go wtime 114917 btime 113487 movestogo 39
<Apollo 1.21 64-bit(7): info depth 1 score cp 8 nodes 39 nps 203876 time 0 pv c1f4
<Apollo 1.21 64-bit(7): info depth 2 score cp 24 nodes 83 nps 180267 time 0 pv d5c6 d4f3
<Apollo 1.21 64-bit(7): info depth 3 score cp 5 nodes 442 nps 251881 time 1 pv c1g5 d7g4 d1a4
<Apollo 1.21 64-bit(7): info depth 4 score cp 6 nodes 635 nps 149106 time 4 pv c1f4 d4f3 d1f3 g7d4
<Apollo 1.21 64-bit(7): info depth 5 score cp 2 nodes 2854 nps 195064 time 14 pv f3d4 g7d4 c1d2 f7f6 d5c6
<Apollo 1.21 64-bit(7): info depth 6 score cp 3 nodes 5668 nps 166157 time 34 pv f3d4 g7d4 c1d2 g8f6 f1d3 d7g4
<Apollo 1.21 64-bit(7): info depth 7 score cp 4 nodes 8431 nps 125501 time 67 pv e1d2 d4f3 d1f3 g7e5 d2d3 g8f6
<Apollo 1.21 64-bit(7): info depth 8 score cp 3 nodes 23658 nps 149704 time 158 pv d1d3 d7g4 f3d4 g7d4 c1f4 g8f6 f2f3
<Apollo 1.21 64-bit(7): info depth 9 score cp 2 nodes 76832 nps 166202 time 462 pv d1d3 d8a5 a1b1 d7g4 f3d4 c5d4 h2h3 d4c3
<Apollo 1.21 64-bit(7): info depth 10 score cp 0 nodes 147593 nps 138937 time 1062 pv d1d3 d8a5 a1b1 d7g4 f3d4 c5d4 b2b4 d4c3 c3b5
<Apollo 1.21 64-bit(7): bestmove d1d3
>__Thinker(8): time 11348
otim 11175
>__Thinker(8): d1d3
<__Thinker(8): move d8b6  
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9 moves g4d7 a4d1 c7c5 d1d3 d8b6
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): 13 26 265 5273012 d8b6  f3d4  c5d4  
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): go wtime 111758 btime 110822 movestogo 38
<Apollo 1.21 64-bit(7): info depth 1 score cp 19 nodes 38 nps 216851 time 0 pv f3d4
<Apollo 1.21 64-bit(7): info depth 2 score cp 5 nodes 49 nps 122595 time 0 pv e1d2 d7b5
<Apollo 1.21 64-bit(7): info depth 3 score cp 1 nodes 134 nps 148042 time 0 pv e1d2 g7h6 d2d1
<Apollo 1.21 64-bit(7): info depth 4 score cp 4 nodes 259 nps 134001 time 1 pv e1d2 g7f6 d2e3 f6e5
<Apollo 1.21 64-bit(7): info depth 5 score cp 5 nodes 607 nps 144031 time 4 pv e1d2 g7h6 d2d1 h6c1 d1c1
<Apollo 1.21 64-bit(7): info depth 6 score cp 3 nodes 6044 nps 221561 time 27 pv b2b3 d4f3 d3f3 g7e5 e1d2
<Apollo 1.21 64-bit(7): info depth 7 score cp 3 nodes 8778 nps 146608 time 59 pv b2b3 d4f3 d3f3 g7d4 f1e2 a8b8 c1b2
<Apollo 1.21 64-bit(7): info depth 8 score cp 2 nodes 41940 nps 188539 time 222 pv h2h3 d4f3 d3f3 g7e5 e1d2 f7f6 f1e2
<Apollo 1.21 64-bit(7): info depth 9 score cp 3 nodes 34632 nps 96197 time 360 pv h2h3 d4f3 d3f3 g7e5 e1d2 b6a5 f3d3 g8f6
<Apollo 1.21 64-bit(7): info depth 10 score cp 0 nodes 402059 nps 205323 time 1958 pv g2g3 b6a5 f3d2 g8f6 c3e2 f6g4 e2f4 g7e5
<Apollo 1.21 64-bit(7): bestmove g2g3
>__Thinker(8): time 11082
otim 10639
>__Thinker(8): g2g3
<__Thinker(8): move g8f6  
>Apollo 1.21 64-bit(7): position fen r2qk1nr/ppp1ppbp/3p2p1/3P4/Q1PnP1b1/2N2N2/PP3PPP/R1B1KB1R b KQkq - 5 9 moves g4d7 a4d1 c7c5 d1d3 d8b6 g2g3 g8f6
>Apollo 1.21 64-bit(7): isready
<__Thinker(8): 14 60 363 7330888 g8f6  f3d4  c5d4  
<Apollo 1.21 64-bit(7): readyok
>Apollo 1.21 64-bit(7): go wtime 106393 btime 107172 movestogo 37
<Apollo 1.21 64-bit(7): info depth 1 score cp 15 nodes 39 nps 342712 time 0 pv f3d4
<Apollo 1.21 64-bit(7): info depth 2 score cp 15 nodes 45 nps 159941 time 0 pv f3d4 c5d4
<Apollo 1.21 64-bit(7): info depth 3 score cp 13 nodes 90 nps 127699 time 0 pv f3d4 c5d4 c3e2
<Apollo 1.21 64-bit(7): info depth 4 score cp 13 nodes 150 nps 109285 time 1 pv f3d4 c5d4 c3e2 b6b4
<Apollo 1.21 64-bit(7): info depth 5 score cp 9 nodes 409 nps 125312 time 3 pv f3d4 c5d4 c3e2 b6b4 e1d1
<Apollo 1.21 64-bit(7): info depth 6 score cp 9 nodes 1442 nps 150308 time 9 pv f3d4 c5d4 c3e2 b6b4 e1d1 b4a4
<Apollo 1.21 64-bit(7): info depth 7 score cp 11 nodes 2354 nps 116670 time 20 pv f3d4 c5d4 c3e2 b6b4 e1d1 d7a4 b2b3
<Apollo 1.21 64-bit(7): info depth 8 score cp 7 nodes 91680 nps 239831 time 382 pv f1g2 a8c8 b2b3 d7g4 c3a4 d4f3 g2f3 b6b4
<Apollo 1.21 64-bit(7): info depth 9 score cp 2 nodes 119622 nps 139644 time 856 pv f1g2 f6g4 g2h3 g4e5 h3d7 e8d7 f3e5 g7e5 e1g1
<Apollo 1.21 64-bit(7): info depth 10 score cp 0 nodes 275845 nps 139568 time 1976 pv h2h3 e7e5 d5e6 d4f3 d3f3
<Apollo 1.21 64-bit(7): bestmove h2h3
>__Thinker(8): time 10717
otim 10288
>__Thinker(8): h2h3
>Apollo 1.21 64-bit(7): isready
>__Thinker(8): ?
>__Thinker(8): force
>__Thinker(8): result 1/2-1/2 {Draw by adjudication: user decision}
<Apollo 1.21 64-bit(7): readyok
<__Thinker(8): move d4f3  
<__Thinker(8): 9 56 21 375427 d4f3  d3f3  e8g8  

On another positive note, I don't see any more crashes under Cute Chess. It does crash under Fritz 16 GUI, will make a separate issue for that.

from apollo.

stnevans avatar stnevans commented on July 2, 2024

The heart of the issue is that apollo checks if the current position is a repetition, and if so, it returns to cut down on the search time. The problem is apollo previously checked if there was a transposition table entry for the current position, and if so it returned. When outputting the best move, however, apollo uses a triangular pv array. The array was never filled in that case.

I just threw together a fix to fill the pv array in this case, however I'd like to look more deeply at this issue and related ideas to make sure I didn't miss anything when I get more time.
I tested the exact commands you used before that caused apollo to return a1a1, and I now get the move a4d1.

Could you confirm that the new patch(binarys under release 1.2.1 also updated) fixes this issue?

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

Great, now it's fixed.

There only remains a slight issue of nodes, NPS and time all displayed as zeroes for every iteration of the very last move (4.Qd1).

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

Another example found, possibly unrelated to those reported previously. It took 80 games to surface.

[Event "Apollo 1.21 64-bit 40/4"]
[Site "Dual X5670"]
[Date "2018.10.08"]
[Round "19"]
[White "Apollo 1.21 64-bit"]
[Black "TSCP 1.81"]
[Result "0-1"]
[ECO "A40"]
[GameDuration "00:05:19"]
[GameEndTime "2018-10-08T12:35:20.951 Eastern Daylight Time"]
[GameStartTime "2018-10-08T12:30:01.105 Eastern Daylight Time"]
[Opening "Queen's pawn"]
[PlyCount "108"]
[Termination "illegal move"]
[TimeControl "40/120"]

1. d4 {book} e6 {book} 2. e4 {book} d5 {book} 3. e5 {book} c5 {book}
4. c3 {book} Ne7 {book} 5. Nf3 {book} Nec6 {book} 6. a3 {book} a5 {book}
7. Qc2 {+0.05/9 3.2s} cxd4 {-0.25/6 4.0s} 8. cxd4 {+0.01/10 2.3s}
Be7 {-0.17/5 3.9s} 9. Bd3 {+0.17/11 4.8s} Nd7 {-0.21/5 3.7s}
10. Bxh7 {+0.73/9 2.7s} Qb6 {-0.46/5 3.6s} 11. Nbd2 {-0.02/11 3.6s}
a4 {+0.62/5 3.5s} 12. O-O {+0.03/11 2.3s} g5 {+0.42/5 3.4s}
13. h3 {+0.03/12 4.9s} Qa7 {+0.35/5 3.3s} 14. Bd3 {+0.47/11 3.1s}
Nxd4 {+0.11/5 3.2s} 15. Nxd4 {+0.30/13 2.8s} Qxd4 {+0.11/5 3.0s}
16. Nf3 {+0.30/13 4.6s} Qc5 {-0.02/6 2.9s} 17. Be3 {+0.25/12 3.8s}
Qxc2 {+0.04/6 2.8s} 18. Bxc2 {+0.19/13 5.4s} Rg8 {+0.04/6 2.8s}
19. Rac1 {+0.14/12 9.9s} g4 {+0.05/6 2.7s} 20. hxg4 {+0.20/12 3.4s}
Rxg4 {0.00/6 2.6s} 21. g3 {+0.15/10 1.9s} b6 {+0.25/6 2.5s}
22. Rfd1 {+0.17/10 1.7s} Bb7 {+0.40/6 2.4s} 23. Kg2 {+0.14/10 3.5s}
Bc5 {+0.60/5 2.3s} 24. Bxc5 {+0.12/11 3.6s} bxc5 {+0.70/6 2.2s}
25. Bd3 {+0.14/10 1.8s} c4 {+0.81/6 2.2s} 26. Kh3 {+0.08/11 1.3s}
Rg8 {+0.82/6 2.1s} 27. Bc2 {+0.10/10 1.2s} Bc6 {+0.76/6 2.0s}
28. Nd4 {+0.30/12 2.2s} Rh8+ {+0.60/6 2.0s} 29. Kg2 {+0.41/12 2.6s}
Bb7 {+0.53/6 1.9s} 30. f4 {+0.30/11 2.6s} Rg8 {+0.56/5 1.8s}
31. Rd2 {+0.37/10 2.1s} Nc5 {+0.62/5 1.8s} 32. f5 {+0.07/10 2.2s}
Ne4 {+0.94/6 1.7s} 33. Bxe4 {+0.28/12 1.3s} dxe4 {+0.27/7 1.7s}
34. Kf2 {+0.28/11 1.2s} Rg5 {+0.25/6 1.6s} 35. Rxc4 {+0.69/12 1.7s}
exf5 {+0.14/6 1.5s} 36. Nb5 {+0.81/12 1.1s} Kf8 {-0.50/6 1.5s}
37. Nd6 {+0.96/12 1.1s} Ba6 {-1.09/6 1.4s} 38. Rc7 {+1.04/12 1.2s}
Rg7 {-0.69/6 1.4s} 39. Nxf5 {+1.27/12 1.4s} Rg5 {-1.11/6 1.4s}
40. Nd6 {+1.30/12 1.7s} Rxe5 {-1.18/6 1.3s} 41. Rxf7+ {+1.23/13 9.9s}
Kg8 {-1.10/7 5.3s} 42. Ke3 {+1.15/13 4.5s} Rb8 {-1.39/7 5.1s}
43. Rff2 {+1.15/13 11s} Bd3 {-1.60/7 4.9s} 44. Rf4 {+1.15/14 7.9s}
Rb3 {-1.60/7 4.8s} 45. Kd4 {+1.15/14 4.9s} Re6 {-1.30/7 4.6s}
46. Rg4+ {+1.15/15 4.7s} Kf8 {-1.30/6 4.4s} 47. Nxe4 {+1.15/15 7.1s}
Bxe4 {-1.30/7 4.3s} 48. Rf2+ {+1.15/16 9.5s} Ke7 {-1.30/7 4.1s}
49. Rxe4 {+1.20/16 9.4s} Rxe4+ {-1.20/9 4.0s} 50. Kxe4 {+1.25/15 5.5s}
Rxg3 {-1.20/8 3.9s} 51. Rf3 {+1.25/14 5.4s} Rxf3 {-1.00/9 3.8s}
52. Kxf3 {+1.25/15 1.6s} Kd6 {-1.12/12 3.6s} 53. Ke4 {+2.60/20 0.87s}
Kc5 {-1.42/13 3.5s} 54. b4+ {+2.65/20 0.67s}
axb3 {-1.01/10 3.4s, White makes an illegal move: c5c4} 0-1

It would also appear that v1.21 is considerably stronger than v1.1. That's probably not a bug.

from apollo.

stnevans avatar stnevans commented on July 2, 2024

Still looking at this, not easily reproduced by me. Just settings up the last position and running a search didn't output that move for me, so my best guess is it's an issue with the transposition table.
Sorry it took me so long to respond.

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

Another example, this one at LTC and involving an e.p capture:

[Event "Apollo 1.21 64-bit 40/40 Gauntlet"]
[Site "Dual E5-2670"]
[Date "2019.03.21"]
[Round "5"]
[White "Apollo 1.21 64-bit"]
[Black "EnkoChess 290818"]
[Result "0-1"]
[ECO "B23"]
[GameDuration "00:46:53"]
[GameEndTime "2019-03-21T01:46:26.513 Eastern Daylight Time"]
[GameStartTime "2019-03-21T00:59:33.025 Eastern Daylight Time"]
[Opening "Sicilian"]
[PlyCount "88"]
[Termination "illegal move"]
[TimeControl "40/1320"]
[Variation "Closed"]

1. e4 {book} c5 {book} 2. Nc3 {book} d6 {book} 3. Nge2 {book} e5 {book}
4. Nd5 {book} Nf6 {book} 5. Nec3 {+0.04/16 34s} Nc6 {37s}
6. Nxf6+ {+0.06/15 38s} gxf6 {37s} 7. Qh5 {+0.25/15 36s} Nd4 {37s}
8. Bc4 {+0.24/17 49s} Be6 {37s} 9. Bxe6 {+0.25/16 24s} Nxe6 {37s}
10. Nd5 {+0.31/15 46s} Nd4 {37s} 11. Kd1 {+0.32/15 31s} Bg7 {37s}
12. f4 {+0.47/14 59s} O-O {37s} 13. Rf1 {+0.50/14 34s} Qd7 {37s}
14. b3 {+0.57/15 83s} Nc6 {37s} 15. d3 {+0.84/14 80s} Nb4 {37s}
16. Rf3 {+0.79/14 26s} Nxd5 {37s} 17. exd5 {+1.16/14 19s} Rae8 {37s}
18. Rg3 {+2.72/16 74s} exf4 {37s} 19. Bxf4 {+2.84/18 22s} Qe7 {37s}
20. Kd2 {+5.70/18 35s} f5 {37s} 21. Bh6 {+5.85/17 19s} Qe5 {37s}
22. Rxg7+ {+6.49/17 41s} Qxg7 {37s} 23. Bxg7 {+6.64/14 24s} Kxg7 {37s}
24. Qg5+ {+6.83/13 57s} Kh8 {37s} 25. Qf6+ {+6.83/13 56s} Kg8 {37s}
26. Qxd6 {+6.89/12 34s} f6 {37s} 27. Qxc5 {+7.30/11 16s} b6 {37s}
28. Qc6 {+7.70/11 19s} Re5 {37s} 29. Re1 {+8.15/11 20s} Rxe1 {37s}
30. Kxe1 {+8.30/12 22s} Kf7 {37s} 31. Qc7+ {+10.85/12 19s} Kg6 {37s}
32. d6 {+10.95/12 16s} Re8+ {37s} 33. Kd2 {+11.75/13 11s} b5 {37s}
34. d7 {+12.45/12 14s} Rh8 {37s} 35. d8=N {+12.75/12 33s} Rf8 {37s}
36. Qe7 {+13.05/11 12s} Rxd8 {37s} 37. Qxd8 {+13.30/10 5.2s} f4 {37s}
38. Qe8+ {+13.20/8 5.4s} Kg5 {37s} 39. Qxb5+ {+13.75/9 12s} f5 {37s}
40. Qd7 {+13.80/8 5.7s} h6 {35s} 41. Qg7+ {+M9/13 147s} Kh5 {2.7s}
42. Ke2 {+M7/13 63s} Kh4 43. Kf3 {+M5/13 65s} Kh5 44. g4+ {+M3/13 45s}
fxg3 {White makes an illegal move: f5g4} 0-1

Out of 672 games 27 ended in abnormal terminations:

  • 12 stalls
  • 7 illegal moves
  • 5 disconnects
  • 3 losses on time

Clearly there's some debugging still to be done. :>

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

Curiously, all five disconnects occurred when 160 moves have been completed for both sides, with Apollo playing black. Another game ended after 159 moves in a stalled connection. Apparently Apollo cannot last longer than four 40-move playing sessions.

from apollo.

tpoppins avatar tpoppins commented on July 2, 2024

And now for something different -- Apollo achieves a completely winning position (mate in 6) and its eval goes completely haywire. 30 moves later the game ends in an illegal move.

[Event "Apollo 1.21 64-bit 40/40 Gauntlet"]
[Site "Dual E5-2670"]
[Date "2019.03.21"]
[Round "7"]
[White "EnkoChess 290818"]
[Black "Apollo 1.21 64-bit"]
[Result "0-1"]
[ECO "B22"]
[GameDuration "02:21:21"]
[GameEndTime "2019-03-21T10:22:11.968 Eastern Daylight Time"]
[GameStartTime "2019-03-21T08:00:50.741 Eastern Daylight Time"]
[Opening "Sicilian"]
[PlyCount "280"]
[Termination "illegal move"]
[TimeControl "40/1320"]
[Variation "Alapin's Variation (2.c3)"]

1. e4 {book} c5 {book} 2. c3 {book} Qa5 {book} 3. g3 {book} Nc6 {book}
4. Na3 {book} Nf6 {book} 5. Qc2 {37s} d5 {+0.12/15 33s} 6. exd5 {37s}
Nxd5 {+0.09/15 33s} 7. Qb3 {37s} e6 {+0.14/14 37s} 8. Bb5 {37s}
Qc7 {+0.12/14 73s} 9. Nf3 {37s} a6 {+0.10/14 34s} 10. Bxc6+ {37s}
Qxc6 {+0.22/15 52s} 11. Ne5 {37s} Qd6 {+0.24/15 49s} 12. Nac4 {37s}
Qd8 {+0.29/14 29s} 13. a4 {37s} f6 {+0.30/15 28s} 14. Nf3 {37s}
e5 {+0.30/15 72s} 15. h4 {37s} Rb8 {+0.48/13 40s} 16. d4 {37s} e4 {+0.42/13 27s}
17. Nfd2 {37s} cxd4 {+0.68/13 20s} 18. Nxe4 {37s} f5 {+0.53/14 28s}
19. Ng5 {37s} h6 {+0.43/14 36s} 20. Nf3 {37s} dxc3 {+0.39/14 35s} 21. bxc3 {37s}
f4 {+0.32/13 32s} 22. Bxf4 {37s} Nxf4 {+0.56/14 24s} 23. gxf4 {37s}
Qd5 {+0.61/13 33s} 24. Ncd2 {37s} Qxb3 {+0.84/18 41s} 25. Nxb3 {37s}
Bd6 {+0.74/17 26s} 26. Ne5 {37s} O-O {+0.91/16 19s} 27. Rd1 {37s}
Bc7 {+0.92/16 44s} 28. Rd4 {37s} Re8 {+0.92/14 17s} 29. O-O {37s}
Bxe5 {+0.95/14 20s} 30. fxe5 {37s} Rxe5 {+0.91/15 40s} 31. Rd8+ {37s}
Kh7 {+0.89/14 15s} 32. Nd4 {37s} Re4 {+1.34/14 37s} 33. f4 {37s}
Re3 {+0.85/13 16s} 34. Rc1 {37s} g6 {+0.88/13 18s} 35. Kf2 {37s}
Re4 {+0.76/14 19s} 36. Kg3 {37s} Ra8 {+0.73/13 9.8s} 37. Rf8 {37s}
a5 {+0.73/13 9.3s} 38. Rf7+ {37s} Kg8 {+0.40/15 12s} 39. Rc7 {37s}
Re8 {+0.59/14 15s} 40. Rg1 {35s} Kh8 {+0.53/14 31s} 41. Kh2 {33s}
Ra6 {-0.16/16 41s} 42. Nf3 {33s} Re2+ {-0.05/17 84s} 43. Rg2 {33s}
Rxg2+ {0.00/16 50s} 44. Kxg2 {33s} Bf5 {+0.21/15 78s} 45. Rxb7 {33s}
Bc2 {+0.17/14 53s} 46. Rb8+ {33s} Kh7 {+0.17/14 68s} 47. Rb7+ {33s}
Kg8 {+0.19/15 83s} 48. Rb8+ {33s} Kg7 {+0.18/14 46s} 49. Ne5 {33s}
Bxa4 {+0.19/14 60s} 50. Rb7+ {33s} Kf8 {+0.19/13 17s} 51. Rb8+ {33s}
Be8 {+0.25/12 12s} 52. c4 {33s} Ke7 {+0.28/12 9.3s} 53. c5 {33s}
Re6 {+0.30/12 11s} 54. Kh3 {33s} a4 {+0.30/13 12s} 55. Rb7+ {33s}
Kd8 {+0.30/14 23s} 56. Kg4 {33s} Rf6 {+0.30/13 8.7s} 57. Kg3 {33s}
h5 {+0.30/12 15s} 58. Rb8+ {33s} Ke7 {0.00/14 21s} 59. Rb7+ {33s}
Kd8 {0.00/14 13s} 60. Rb8+ {33s} Ke7 {0.00/15 30s} 61. Ra8 {33s}
Re6 {+0.30/13 10s} 62. Ra7+ {33s} Kd8 {+0.30/14 16s} 63. Kf2 {33s}
Kc8 {+0.30/14 19s} 64. Kg2 {33s} Kb8 {+0.30/14 12s} 65. Ra5 {33s}
Kb7 {+0.30/14 12s} 66. Kf2 {33s} Kc7 {+0.30/14 20s} 67. Ra7+ {33s}
Kb8 {+0.30/15 9.1s} 68. Ra5 {33s} Kb7 {+0.30/14 8.8s} 69. Nc4 {33s}
Kc7 {+0.30/14 23s} 70. Ra8 {33s} Bc6 {+0.30/14 18s} 71. Ra7+ {33s}
Kb8 {+0.33/14 26s} 72. Rf7 {33s} Bb5 {+0.51/13 17s} 73. Nd6 {33s}
Bd3 {+0.35/13 9.6s} 74. Rb7+ {33s} Ka8 {+0.37/15 15s} 75. Rb2 {33s}
a3 {+0.38/15 20s} 76. Rb3 {33s} Re2+ {+0.57/15 14s} 77. Kf3 {33s}
a2 {+0.57/15 18s} 78. Ra3+ {33s} Kb8 {+0.60/14 14s} 79. Ra5 {33s}
Rb2 {+0.63/13 14s} 80. Ke3 {32s} Bc2 {+0.65/13 22s} 81. Ra6 {33s}
Bb3 {+0.80/15 69s} 82. Rb6+ {33s} Kc7 {+1.02/18 289s} 83. Nb5+ {33s}
Kd8 {+3.66/17 56s} 84. Ra6 {33s} Rb1 {+3.75/15 66s} 85. Ra8+ {33s}
Ke7 {+3.94/16 39s} 86. Ra7+ {33s} Kf6 {+3.96/16 65s} 87. c6 {33s}
a1=R {+3.99/14 39s} 88. Rxa1 {33s} Rxa1 {+4.87/14 48s} 89. c7 {33s}
Be6 {+5.18/14 62s} 90. Nc3 {33s} Ke7 {+5.44/14 62s} 91. Nb5 {33s}
Rc1 {+5.44/13 55s} 92. Kd4 {33s} Bd7 {+5.54/13 31s} 93. Nc3 {33s}
Kd6 {+5.57/14 39s} 94. c8=Q {33s} Bxc8 {+6.31/15 56s} 95. Ne4+ {33s}
Ke7 {+6.34/14 71s} 96. Nc3 {33s} Rh1 {+6.36/13 34s} 97. Nd5+ {33s}
Kf7 {+6.58/13 29s} 98. Nc3 {33s} Bd7 {+6.53/13 56s} 99. Ne4 {33s}
Rxh4 {+6.60/13 40s} 100. Ke5 {33s} Rh1 {+6.66/12 5.8s} 101. Nd6+ {33s}
Ke7 {+6.72/12 11s} 102. Nc4 {33s} Re1+ {+7.07/11 6.5s} 103. Kd4 {33s}
h4 {+7.55/11 6.5s} 104. Nd2 {33s} h3 {+8.32/11 6.5s} 105. Nf3 {33s}
Bg4 {+9.49/12 14s} 106. Nh2 {33s} Bh5 {+10.02/12 5.4s} 107. Kd5 {33s}
Rh1 {+13.40/13 5.8s} 108. f5 {33s} Rxh2 {+17.50/13 7.6s} 109. fxg6 {33s}
Bxg6 {+17.52/12 8.1s} 110. Ke5 {33s} Rd2 {+21474824.17/12 6.6s} 111. Kf4 {33s}
h2 {+21474824.17/12 6.3s} 112. Ke3 {9.5s} Ra2 {+21474824.17/11 7.5s}
113. Kd4 {0.72s} Rc2 {+21474824.17/10 5.7s} 114. Ke5 h1=Q {+21474824.17/11 13s}
115. Kf4 Ra2 {+21474824.17/10 28s} 116. Kg5 Qh7 {+21474824.17/9 5.4s} 117. Kg4
Qh6 {+21474824.15/9 5.6s} 118. Kf3 Qc1 {+21474824.17/9 6.5s} 119. Kg4
Qe3 {+21474824.17/9 7.1s} 120. Kh4 Qf4+ {+21474824.17/9 6.0s} 121. Kh3
Qf1+ {+21474824.17/11 95s} 122. Kh4 Qf5 {+21474824.17/10 51s} 123. Kg3
Qh5 {+21474824.15/10 44s} 124. Kf4 Rg2 {+21474824.15/10 38s} 125. Ke3
Rc2 {+21474824.15/10 33s} 126. Kf4 Qd1 {+21474824.15/10 68s} 127. Kg3
Bh7 {+21474824.15/10 38s} 128. Kf4 Bd3 {+21474824.15/10 34s} 129. Ke3
Qe2+ {+21474824.15/10 29s} 130. Kf4 Qg2 {+21474824.15/10 26s} 131. Ke5
Qh3 {+21474824.15/10 26s} 132. Kd4 Bg6 {+21474824.15/10 25s} 133. Ke5
Qf3 {+21474824.15/10 24s} 134. Kd4 Bd3 {+21474824.15/10 51s} 135. Ke5
Qh5+ {+21474824.15/11 116s} 136. Kf4 Qe2 {+21474824.15/11 126s} 137. Kg5
Qe1 {+21474824.15/11 145s} 138. Kf4 Qe4+ {+21474824.15/11 117s} 139. Kg5
Qe6 {+21474824.15/11 92s} 140. Kh5 {76s}
Kd7 {+21474824.15/10 17s, White makes an illegal move: 0000} 0-1

from apollo.

TheBlackPlague avatar TheBlackPlague commented on July 2, 2024

TheBlackPlague/StockNemo#10 - I am developing my own chess engine, StockNemo. Is the lack of ELO on Apollo's part because of that? StockNemo shouldn't be 2K ELO right now (AB-Search, MVVLVA/Promotion Move Ordering, Mate Distance Pruning, Draw Pruning, Transposition Table, Material + PSQT Evaluation, QSearch, Null Move Pruning) ... what are your thoughts?

from apollo.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.