nibbler icon indicating copy to clipboard operation
nibbler copied to clipboard

PGN output does not show evaluation for all moves

Open CKingX opened this issue 1 year ago • 3 comments

Using LC0 has no issues. Using Stockfish 17 with autoevaluate, although it creates evaluation for all moves, the PGN output does not show evaluation for all moves. Here is the output (there is evaluation missing like for move 5 for black):

Using the latest version of Nibbler

[Event "Live Chess"]
[Site "Chess.com"]
[Date "2024.11.01"]
[Round "?"]
[White "redacted"]
[Black "redacted"]
[Result "0-1"]

1. e4 {EV: 55.5%, CP: +0.38} c6 2. Nc3 {EV: 54.4%, CP: +0.31} d5 {EV: 46.0%, CP:
+0.29} 3. Nf3 {EV: 53.0%, CP: +0.22} Bg4 {EV: 46.7%, CP: +0.25} 4. Be2 {EV:
53.5%, CP: +0.26} e6 {EV: 46.3%, CP: +0.27} 5. d4 {EV: 53.1%, CP: +0.23} Bxf3 6.
Bxf3 {EV: 57.9%, CP: +0.52} c5 7. O-O {EV: 99.1%, CP: +2.09} cxd4 {EV: 3.9%, CP:
+1.67} 8. Qxd4 {EV: 97.0%, CP: +1.74} Bd6 9. exd5 {EV: 99.9%, CP: +3.68} Nc6
{EV: 0.1%, CP: +4.06} 10. dxc6 {EV: 99.9%, CP: +4.77} Bxh2+ {EV: 4.7%, CP:
+1.53} 11. Kxh2 {EV: 96.0%, CP: +1.57} Qxd4 {EV: 6.3%, CP: +1.42} 12. Nb5 Qe5+
{EV: 99.9%, CP: -2.49} 13. Kg1 {EV: 0.1%, CP: -2.65} Qxb5 {EV: 99.9%, CP: -2.68}
14. cxb7 {EV: 0.1%, CP: -2.73} Rb8 {EV: 99.9%, CP: -2.74} 15. a4 {EV: 0.1%, CP:
-2.88} Qc5 16. c3 Qc7 {EV: 99.9%, CP: -3.41} 17. g3 {EV: 0.1%, CP: -3.68} Nf6
18. Bf4 {EV: 0.1%, CP: -3.33} e5 {EV: 99.9%, CP: -3.33} 19. Bxe5 {EV: 0.1%, CP:
-3.21} Qxe5 {EV: 99.9%, CP: -3.42} 20. Rae1 {EV: 0.1%, CP: -3.44} Qxe1 {EV:
99.9%, CP: -3.46} 21. Rxe1+ {EV: 0.1%, CP: -3.51} Kd7 {EV: 99.9%, CP: -3.26} 22.
g4 Rhe8 {EV: 99.9%, CP: -3.96} 23. Rd1+ {EV: 0.1%, CP: -3.95} Kc7 {EV: 99.9%,
CP: -3.96} 24. b4 {EV: 0.1%, CP: -4.01} a6 25. b5 {EV: 0.1%, CP: -3.30} axb5
{EV: 99.9%, CP: -3.89} 26. axb5 {EV: 0.1%, CP: -3.87} Nxg4 27. Bxg4 {EV: 2.6%,
CP: -1.49} Kxb7 {EV: 91.6%, CP: -1.27} 28. Rd7+ {EV: 8.5%, CP: -1.26} Kb6 {EV:
99.8%, CP: -1.89} 29. Rxf7 {EV: 0.2%, CP: -1.94} Rb7 {EV: 99.9%, CP: -2.64} 30.
Rf5 {EV: 0.1%, CP: -2.68} Re1+ {EV: 99.9%, CP: -2.77} 31. Kg2 {EV: 0.1%, CP:
-3.14} Rbe7 {EV: 99.9%, CP: -2.12} 32. c4 {EV: 0.1%, CP: -2.40} R1e5 33. Rf8
{EV: 1.2%, CP: -1.61} Rg5 {EV: 61.8%, CP: -0.81} 34. Kh3 {EV: 23.9%, CP: -1.01}
Re1 {EV: 78.8%, CP: -1.05} 35. f4 Rc5 {EV: 99.9%, CP: -2.25} 36. Rb8+ {EV: 0.1%,
CP: -2.40} Ka7 {EV: 99.9%, CP: -2.52} 37. Rh8 Rxc4 {EV: 99.9%, CP: -3.31} 38.
Rxh7 Rh1+ {EV: 99.9%, CP: -199.84} 0-1

CKingX avatar Nov 01 '24 18:11 CKingX

Interesting.

Note to self: If we say foo is the node in question, it seems foo.parent.table.moveinfo[foo.move].__touched is false in these cases, leading to the early return here: https://github.com/rooklift/nibbler/blob/master/files/src/renderer/51_node.js#L310-L312

rooklift avatar Nov 01 '24 18:11 rooklift

Ah, thinking about it, I think this is what happens when Stockfish never analysed the move that was actually played, at the position where it was an option.

Ideally it should be able to tell you about the value of the move by looking at the position that was actually reached. At this time I can't quite remember why it works the way it does.

rooklift avatar Nov 01 '24 18:11 rooklift

Thank you! It seems to show the score for all the moves in the graph and in the infobox image

CKingX avatar Nov 03 '24 00:11 CKingX