Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UCI searchmoves sub-command #14

Open
monday0rsunday opened this issue Mar 12, 2024 · 2 comments
Open

UCI searchmoves sub-command #14

monday0rsunday opened this issue Mar 12, 2024 · 2 comments

Comments

@monday0rsunday
Copy link

Hello Thomas,

Beside of playing, I think one of great usage with chess engine(UCI protocol) is analysis capability. From a standard info line, we could use score and PV information to estimate roughly what would have been (possible CP, possible PV moves) with best available moves. And searchmoves sub-command will help us estimate roughly what would have been with our move. For example, here is one of my self reviewing my match using Stockfish:

1.e4: Best Move
	 pvCurrent(0.26): e4 e5 Nf3 Nc6 d4 exd4 Nxd4 Nf6 Nxc6 bxc6 Bd3 d5 e5 Nd7 O-O Nc5 f4 Nxd3 Qxd3 Be7 Qc3
	 pvAI(0.34): e4 e5 Nf3 Nc6 Bb5 Nge7
1...c5: NA
	 pvCurrent(0.27): c5
	 pvAI(0.28): e5 Nf3 Nc6 Bc4 Nf6 Ng5 d5 exd5 Na5 Bb5+ Bd7 Bxd7+ Qxd7 O-O Qxd5 Nc3
2.f4: Excellent
	 pvCurrent(-0.13): f4 e6 Nf3 d5 Bb5+ Bd7 Bxd7+ Qxd7 Ne5 Qd6 Nc3 Nc6
	 pvAI(0.3): Nf3 Nc6 d4 cxd4 Nxd4 g6 Nc3 Bg7 Be3 Nf6 Nxc6 bxc6 e5 Ng8 f4 d5 Qf3 Nh6 h3 f6 O-O-O
2...d6: Excellent
	 pvCurrent(0.05): d6 Nf3 Nc6 Nc3 g6 d4 cxd4 Nxd4 Bg7 Be3 Nf6 Qd2 O-O Be2 Nxd4 Bxd4 e5 fxe5 dxe5 Bxe5 Qxd2+ Kxd2
	 pvAI(-0.07): e6 d3 Nc6 Nf3 Nge7 Be2 g6 Be3 b6 O-O
3.Nf3: Excellent
	 pvCurrent(0.03): Nf3 Nc6 Nc3 g6 d4 cxd4 Nxd4 Bg7 Be3 Nf6 Be2 O-O a4 Re8 O-O e5 fxe5 Rxe5
	 pvAI(0.13): d4 Nf6 Nc3 cxd4 Qxd4 Nc6 Bb5 g6 e5 dxe5 Qxd8+ Kxd8 Bxc6 bxc6 fxe5 Nd5 Nxd5 cxd5 Be3 Bg7 Nf3 Ke8 O-O-O
3...Nc6: Best Move
	 pvCurrent(0.09): Nc6 Nc3 g6 d4 cxd4 Nxd4 Bg7 Be3 Nf6 Be2 O-O Qd3 Bd7 Rd1 Rc8 O-O a6 a4 Ng4 Nxc6 Rxc6
	 pvAI(0.0): Nc6 d4 cxd4 Nxd4 g6 Nc3 Bg7 Be3 Nf6 Be2 O-O a4 Re8 O-O e5 fxe5 Rxe5 Bf3
4.Bb5: Excellent
	 pvCurrent(0.01): Bb5 Bd7 b3 Nf6 Bxc6 Bxc6 d3 g6 Bb2 Bg7 O-O O-O Nbd2
	 pvAI(0.12): Nc3 g6 d4 cxd4 Nxd4 Bg7 Be3 Nf6 Be2 O-O Qd3 Ng4 Bxg4 Bxg4 O-O Nxd4 Bxd4 e5 Be3 exf4 Rxf4
4...Bd7: Best Move
	 pvCurrent(0.0): Bd7
	 pvAI(-0.03): Bd7 O-O
5.O-O: Best Move
	 pvCurrent(0.01): O-O g6 d3 Bg7 Nc3 Nf6 a4 a6 Bxc6 Bxc6 Qe1 b5 e5 Nd5 axb5 axb5 Rxa8 Bxa8 Nxb5 O-O Qh4
	 pvAI(-0.01): O-O g6
5...a6: Excellent
	 pvCurrent(0.05): a6 Bxc6 Bxc6 d3 g6 Bd2 b5 Qe1 Bg7 Bc3 Nf6 a3 Qb6
	 pvAI(0.02): g6 c3 Nf6 Re1 Bg7 d4 Qb6 Bxc6 Qxc6 d5 Qa4
6.Be2: NA
	 pvCurrent(0.17): Be2
	 pvAI(0.08): Bxc6 Bxc6 Nc3 g6 Qe1 Bg7 d3 Nf6 Bd2 b5 Ne2 e6
6...Nf6: Excellent
	 pvCurrent(0.19): Nf6 d3 g6 Qe1 Bg7 h3 b5 Be3 O-O c3 a5 Nbd2 a4 a3 b4 Bd1 bxc3 bxc3 Na5
	 pvAI(0.17): g6 c3 Nf6 d3 Bg7 h3 b5 Qe1 O-O Be3 a5 Nbd2 Rb8 Qh4 a4 a3 e6 d4 cxd4 Nxd4 Nxd4 Bxd4 Bc6
7.e5: Excellent
	 pvCurrent(-0.37): e5 dxe5 Nxe5 g6 a4 Bg7 Na3 Nd4 Nxd7 Nxd7 c3 Nxe2+ Qxe2 O-O Nc4 b5
	 pvAI(0.18): d3 g6 h3 Bg7 c3 b5 Be3 O-O Nbd2 a5 a3 a4 Qe1 b4 cxb4 cxb4 Nc4
7...dxe5: Best Move
	 pvCurrent(-0.34): dxe5 Nxe5 g6 c3 Bg7 Bf3 Qc7 Nxd7 Qxd7 Na3 b5 Nc2 Rd8 a4 b4 Qe2 Qc8
	 pvAI(-0.36): dxe5
8.fxe5: Excellent
	 pvCurrent(-0.63): fxe5 Ng4 b4 Qc7 c3 c4 Bxc4 Ncxe5 Nxe5 Nxe5 Bb3 e6 d4 Ng6 Qf3 Bc6 d5 exd5
	 pvAI(-0.33): Nxe5 g6 d3 Bg7 Bf3 Qc7 Nxd7 Qxd7 Nd2 Rd8 a4 Nd5 Nb3 Nd4 c3 Nxf3+ Qxf3 Qc6 Qe2
8...Nd5: Inaccuracy
	 pvCurrent(0.09): Nd5 Nc3 Bf5 d4 cxd4 Nxd4 Nxd4 Qxd4 Nxc3 bxc3 e6 Be3 Qc8 Rfb1 Be7 Bf3 Rb8 Qa7 O-O
	 pvAI(-0.68): Ng4 Na3 g6 c3 Ngxe5 Nxe5 Nxe5 d4 cxd4 cxd4 Nc6 Bc4 f5 Qb3 Bg7 Bg8 Bxd4+ Kh1 e6 Bxe6
9.Bc4: Excellent
	 pvCurrent(-0.38): Bc4 Bf5 d4 Nb6 Bd3 Bxd3 cxd3 e6 dxc5 Bxc5+ Kh1 Rc8 Nc3 Be7 Be3 Nd5 Bg1
	 pvAI(0.09): Nc3 Bf5 d4 Nxc3 bxc3 e6 Bd3 Bxd3 Qxd3 Be7 Rb1 cxd4 cxd4 b5 c4 bxc4 Qxc4 Rc8 Qxa6 O-O Qa4 Qd5 Rb7 Ra8 Qb3
9...e6: Excellent
	 pvCurrent(0.08): e6 Nc3
	 pvAI(-0.32): Bf5 Nc3 e6 Bxd5 exd5 d4 cxd4 Nxd4 Bc5 Be3 Bg6 Rf2 Qd7 Qd2 O-O Nxc6 Bxe3 Qxe3 bxc6 Na4 Rae8
10.Nc3: Best Move
	 pvCurrent(0.01): Nc3 Nde7
	 pvAI(0.06): Nc3 Nde7 Ne4 Ng6 c3 b5 Be2 Be7 d4 cxd4 cxd4 O-O Bd3 Nb4 Bb1 Bc6 Neg5
10...Nxc3: Inaccuracy
	 pvCurrent(0.75): Nxc3
	 pvAI(-0.06): Nf4 Ne4 Ng6 c3 Be7 d4 cxd4 cxd4 O-O Be3 Rc8 Nfg5 Ncxe5 Bb3
11.dxc3: Best Move
	 pvCurrent(0.79): dxc3 Be7 Qe1 h6 Bf4 g5 Bg3 h5 h3 h4 Bh2 g4 hxg4 Qb6 Rd1 h3 gxh3 Rxh3
	 pvAI(0.79): dxc3 h6
11...b5: Inaccuracy
	 pvCurrent(1.44): b5 Bd3 h6 Be4 Qc7 Qe2 Rb8 Be3 Ne7 Rad1 Bc6 Nd2 Nf5
	 pvAI(0.66): h6 Qe2 Qb6 Rb1 Na5 Nd2 Qc7
12.Be2: Excellent
	 pvCurrent(0.79): Be2 c4 Be3 Qc7 Qe1 Ne7 Qf2 Nd5 Bd4 Be7 Ng5 O-O Ne4 Bc6 Bg4 Kh8 Rae1
	 pvAI(1.41): Bd3 h6 Be4 Rc8 Qe2 Qc7 Qf2 Nd8 Bf4 c4 Kh1 Bc6
12...Be7: Excellent
	 pvCurrent(1.49): Be7 Qe1
	 pvAI(0.85): c4 Be3 Qc7 Qe1 Ne7 Qf2 Nd5 Bd4 Be7 Nd2 O-O Bf3 f5 exf6 Bxf6 Bxf6 Rxf6 Ne4 Rh6 g3 Bc6 Qc5
13.b3: Inaccuracy
	 pvCurrent(0.59): b3 Qc7 Bf4 c4 Kh1 O-O Qe1 f5 exf6 Qxf4 fxe7 Nxe7 bxc4 bxc4 Nd2 Qc7
	 pvAI(1.36): Qe1 O-O Qg3 f5 exf6 Bxf6 Be3 Ne7 Bxc5 Rc8 Bxe7 Qxe7 Bd3 g6 Rae1 Bg7
13...Qc7: Excellent
	 pvCurrent(0.69): Qc7 Bf4
	 pvAI(0.6): O-O
14.Bf4: Best Move
	 pvCurrent(0.57): Bf4 O-O
	 pvAI(0.66): Bf4 O-O Kh1 b4 Qe1 bxc3 Qg3 Kh8 Bg5 h6 Bd3 Bxg5 Nxg5
14...c4: Excellent
	 pvCurrent(0.68): c4
	 pvAI(0.62): O-O Bd3 c4 Be4 cxb3 cxb3 Rac8 Rc1 Bd8 Qd3 h6 Qd2 Ne7 Bb1
15.bxc4: Excellent
	 pvCurrent(0.64): bxc4
	 pvAI(0.68): Kh1 O-O bxc4 bxc4 Bxc4 Nb8 Bd3 Bb5 Qe1 Nd7 a4 Bxd3 cxd3 Rac8 c4 Nc5 Qd1 Rb8 Be3
15...Bc5+: Excellent
	 pvCurrent(0.86): Bc5+ Kh1
	 pvAI(0.67): O-O Kh1
16.Kh1: Best Move
	 pvCurrent(0.97): Kh1 Ne7
	 pvAI(1.08): Kh1 Ne7 Ng5 Bc6 Nxf7 O-O Nd6 Rad8 Bd3 Ng6 Qh5
16...bxc4: Excellent
	 pvCurrent(1.51): bxc4 Bxc4 h6 Nd2 Ne7 Ne4 Ng6 Bg3 O-O Bd3 Nxe5 Nf6+ gxf6 Rxf6 Be7 Rxh6 Qxc3
	 pvAI(0.97): Ne7 Ng5 Bc6 Nxf7 Qb7 Bf3 Kxf7 Be3 Nf5 Bxc5 Bxf3 Rxf3 Rhc8 Bd4 Kg8 c5 Qc6 Bf2
17.Bxc4: Best Move
	 pvCurrent(1.39): Bxc4 h6 Nd2 Ne7 Ne4 Nf5 Bd3 Be7 Qg4 h5 Nd6+ Bxd6 Qf3 O-O exd6 Qc5 c4
	 pvAI(1.51): Bxc4 Ne7 Ng5 h6 Qh5 g6 Qh3 Nf5 Ne4 Kf8
17...O-O: Inaccuracy
	 pvCurrent(2.31): O-O Ng5 g6 Qe1 Be7 Qh4 Bxg5 Qxg5 Nb4 Bb3 Qxc3 Qf6
	 pvAI(1.36): h6 Nd2 Ne7 Ne4 Nf5 Qe2 Qa7 Rad1 Bc6 Bd3 Be7 Nd6+ Bxd6 exd6 O-O c4 Rfd8 h3 Rac8
18.Qd3: Mistake
	 pvCurrent(0.47): Qd3 Ne7 a4 a5 Ng5 Ng6 Bg3 Bc6 h4 Be7 Nxf7 Rxf7 Rxf7 Kxf7
	 pvAI(2.42): Ng5 g6 Ne4 Be7 Nf6+ Bxf6 exf6 e5 Bg3 Nd8 Bd5 Bc6 c4 Ne6 Bxe6 fxe6 Qe2 Rad8 Rae1 Qa5
18...f6: Blunder
	 pvCurrent(5.05): f6 exf6 Qxf4 Qxd7 Rxf6 Bxe6+ Kh8 Qxc6 Raf8 Qxc5 Rxe6 Rad1 Rh6 Rde1 Kg8
	 pvAI(0.53): Ne7 a4 Bc6 Bxa6 Bxf3 Rxf3 Ng6 Bg3 Nxe5 Qe2 Bd6 Rd1 Rfd8
19.exf6: Best Move
	 pvCurrent(5.21): exf6 Qxf4 Qxd7 gxf6 Bxe6+ Kh8 Qxc6 Qd6 Qxd6 Bxd6 Rad1 Rad8 g3 Rfe8 Rfe1 Ba3 Rxd8 Rxd8 Bf5 a5 g4 Rb8 g5
	 pvAI(5.19): exf6 Qxf4 Qxd7 gxf6 Bxe6+ Kh8 Qxc6 Qd6 Qxd6 Bxd6 Rad1 Bc5 Rde1 f5 Bd5 Rab8 g3 f4
19...Qxf4: Best Move
	 pvCurrent(5.17): Qxf4 Qxd7 gxf6 Bxe6+ Kh8 Qxc6 Be3 Rae1 Rad8 Qxa6 f5 Qc4 Qh6
	 pvAI(5.3): Qxf4 Qxd7 gxf6 Bxe6+ Kh8 Qxc6 Qd6 Qxd6 Bxd6 Rad1 Rad8 g4 Bc7 Rxd8 Rxd8 Re1 Bf4 Bc4 Bd2 Re7
20.fxg7: Blunder
	 pvCurrent(2.12): fxg7 Rfd8 Rae1 Qh6 Ng5 Bg1 Qd6 Qxg5 Bxe6+ Bxe6 Qxe6+ Kxg7 Qxc6 Bxh2 Kxh2
	 pvAI(5.29): Qxd7 gxf6 Bxe6+ Kh8 Qxc6 Qd6 Qxd6 Bxd6 Bf5 Rfd8 g3 Rab8
20...Kxg7: Mistake
	 pvCurrent(3.99): Kxg7 Qxd7+ Kh8 Bd3 Ne7 Nd4 Qe5 Qxe6 Ng6 Qc6 Rac8 Rxf8+ Rxf8
	 pvAI(2.17): Rfd8 Rae1
21.Qxd7+: Best Move
	 pvCurrent(4.03): Qxd7+ Kh8 Bd3 Ne7 Qxe6 Rf6 Ng5 Qxf1+ Rxf1 Rxe6 Nxe6 Ba3 g3 Ng6 Ng5 Rb8 Rf7 Ne5 Rxh7+ Kg8
	 pvAI(4.02): Qxd7+ Kh8 Bd3 Ne7 Qxe6 Rf6 Ng5 Rxe6 Rxf4 Rc6 Rf7 Nd5 Rxh7+ Kg8
21...Ne7: Inaccuracy
	 pvCurrent(5.44): Ne7 Nd4 Qh4 Nxe6+ Kh8 Rxf8+ Rxf8 Nxf8 Qxc4 Ne6 Ba3 Re1 Qg4 h3 Qc4 Qd8+ Ng8 Qg5 Qxc3 Qe3 Qxe1+ Qxe1 Bb2 Qd2
	 pvAI(4.17): Kh8 Bd3 Ne7 Qxe6 Rf6 Ng5 Qxf1+ Rxf1 Rxe6 Nxe6 Be3 Rf7 Ng6 g3 Re8 Nc7 Re5 Rd7 Nf8 Rd5
22.Bxe6: Mistake
	 pvCurrent(3.26): Bxe6 Rad8 Qb7 Rf6 Rae1 Rb8 Qe4 Qxe4 Rxe4 Nf5 Bxf5 Rxf5
	 pvAI(5.42): Nd4 Qg4 Rxf8 Rxf8 Nxe6+ Kh8 Nxf8 Qxc4 Ne6 Ba3 Re1 Qg4 h3 Qc4 Qd8+ Ng8 Qg5 Qxc3 Qe3 Qxe1+ Qxe1 Nf6 Qh4 Bb2 g3
22...Rad8: Best Move
	 pvCurrent(3.33): Rad8 Qb7 Qh6 Bh3 Kh8 Rae1 Nd5 Ne5 Bf2 Nf7+ Rxf7 Qxf7 Bxe1 Rxe1 Nxc3 Re8+ Rxe8 Qxe8+ Kg7 Qe7+ Kg6
	 pvAI(3.21): Rad8 Qb7 Rf6 Qxa6 Nf5 Qb7+ Kh8 Bxf5 Rxf5 Qb5 Be3 Qb4 Qh6
23.Qb7: Best Move
	 pvCurrent(3.36): Qb7 Qh6 Bh3 Qf6 Rae1 Kh8 Qc7 Rd5 c4 Bd6 Qb6 Re5 Qxa6 Rxe1 Rxe1 Ng6 Rd1
	 pvAI(3.33): Qb7 Qh6 Rae1 Kh8 Qe4 Rf6 Nd4 Bd6 Bh3 Rdf8 Rxf6 Qxf6 g3 Qh6 Qg4
23...Rf6: Best Move
	 pvCurrent(3.56): Rf6 Rae1 Qb8 Qxb8 Rxb8 Nd4 Bxd4 cxd4 Rb2 Rxf6 Kxf6 Kg1 Nc6 c3 Rc2 Bd5 Rxc3 Re6+ Kg7 Bxc6
	 pvAI(3.47): Rf6 Rae1 Rb8 Qd7 Rbf8 Bd5 Qd6 Qxd6 Bxd6 Bc4 Rh6 g3 Nf5 Kg2 Bc5 Nd4 Rhf6 Nxf5+ Rxf5
24.Qb3: Excellent
	 pvCurrent(2.88): Qb3 Rdf8 Rae1 Kh8 Qc4 Qxc4 Bxc4 Nf5 Ng5 Ne3
	 pvAI(3.5): Rae1 Rb8 Qd7 Rbf8 g3 Qb8 Bd5 Qd6 Qxd6 Bxd6 Be4 Nf5 Kg2 Bc5 Bxf5 Rxf5 a4 Bb6 Nd4 Rxf1 Rxf1
24...Rh6: Excellent
	 pvCurrent(3.19): Rh6 Bh3 Rb8 Ng5 Rxb3 Rxf4 Rxc3 Ne6+ Kh8 Rf8+ Ng8 Rc8 Bb4 Rxc3 Bxc3 Rd1 Rh5 Rd7 Ra5 g3 Rxa2 Bf5
	 pvAI(2.79): Rb8 Qc4 Qxc4 Bxc4 Nf5 Ng5 Ne3 Rxf6 Kxf6 Ne4+ Kg6 Nxc5 Nxc4 Nxa6 Ra8 Nb4 Ra3 g3
25.Bh3: Best Move
	 pvCurrent(2.96): Bh3 Rf6 c4 Kh8 Rae1 Nc6 g3 Qh6 Bg2 Rdf8 Qd3
	 pvAI(2.98): Bh3 Rf6 c4 Rdf8 Rae1 Nf5 Bxf5 Rxf5 Qc3+ R8f6
25...Nd5: Mistake
	 pvCurrent(4.75): Nd5 Nd4 Kh8 Rxf4 Nxf4 Qc4 Rd5 Rf1 Rf6 Re1 Nxh3 gxh3 Rf2 Re8+ Kg7
	 pvAI(3.03): Rf6 c4 Rdf8 Rad1 Nc6 g3 Qh6 Bg2 Ne7 Nd2 Rxf1+ Nxf1 Rf2
26.Nd4: Best Move
	 pvCurrent(5.13): Nd4 Qxf1+ Rxf1 Kh8 Nf5 Rf6 Qb7 Ne7 g3 Rd2 Qb8+ Ng8 Qe5
	 pvAI(4.82): Nd4 Qg5 Nf5+ Kh8 Nxh6 Qxh6 Qc4 Bb6 Rad1 Qd6 Qe4 Bc7 Qd4+ Qe5 g3 Qxd4 Rxd4 Bb6
26...Qd2: Excellent
	 pvCurrent(5.55): Qd2 Nf5+ Kh8 Nxh6 Qxh6 Rad1 Qd6 c4 Qe5 cxd5 Bd6 Qg3 Qxg3 hxg3 Bxg3 Rd3 Bd6 Rdf3 Re8 Rb3
	 pvAI(5.3): Bxd4 Rxf4 Nxf4 cxd4 Rf8 Qe3 Rc6 Qe7+ Rf7 Qe5+ Rff6 Rf1
27.Nf5+: Best Move
	 pvCurrent(5.87): Nf5+ Kh8 Nxh6 Qxh6 Rad1 Qd6 c4 Rb8 Rxd5 Rxb3 Rxd6 Bxd6 cxb3 Bc5 Rd1 Kg7 Rd8
	 pvAI(5.78): Nf5+ Kh8 Nxh6 Qxh6 Rad1 Qg5 c4 Rf8 Rxf8+ Bxf8 cxd5 Qe5 Qf3 Bd6 g3 Qb2 c3
27...Kg6: Excellent
	 pvCurrent(6.5): Kg6 Qb7 Bf8 Rad1 Qxd1 Rxd1 Rxh3 gxh3 Bc5 Nh4+ Kh6 Qf7 Bb6 Qe6+ Kg7 Nf5+ Kf8 Rxd5
	 pvAI(5.99): Kh8 Nxh6 Qxh6 Rad1 Bd6 Qxd5 Bc7 Qf7 Bd6 Rxd6 Qxd6
28.Nxh6: Inaccuracy
	 pvCurrent(5.34): Nxh6 Kxh6 Qc4 Be7 Rad1 Qg5 Rf5 Nb6 Qf1 Qh4 Rxd8 Bxd8 Qd3 Nc4
	 pvAI(6.54): Qb7 Bf8 Rad1 Qe2 Nxh6 Kxh6 Rde1 Qxf1+ Rxf1 Be7 g4 Kg7 c4 Rf8 cxd5
28...Kxh6: Best Move
	 pvCurrent(5.64): Kxh6 Qc4 Be7 Rad1 Qg5 Rf5 Nb6 Qe2 Rxd1+ Qxd1 Qg6 Qd4 Qd6 Qxd6+ Bxd6 Rf6+ Kg5 Rxd6 Nc4 Rd5+ Kf4 Rf5+ Ke3
	 pvAI(5.43): Kxh6 Qc4 Be7 Rad1 Qg5 Rf5 Nb6 Qe6+ Qg6 Re1 Bg5 Rf7 Rd6 Bf5 Rxe6 Rxe6 Nc4 Bxg6 hxg6 Rd7 Nd2
29.Rad1: Inaccuracy
	 pvCurrent(4.62): Rad1 Qg5 Rf5 Nf4 Rf1 Nxh3 gxh3 Rd1 Qe6+ Qg6 Qxg6+ hxg6 Rxd1 gxf5 Rd5 Ba3 Rxf5 Kg6 Rd5 Bb2 Kg2
	 pvAI(5.64): Qc4 Be7 Rad1 Qg5 Rf5 Nb6 Qe2 Rxd1+ Qxd1 Qg6 Qd4 Qd6 Qxd6+ Bxd6 Rf6+ Kg7 Rxd6 Nc4 Re6 Kg8 Re1 Nd6 g3 Kh8
29...Qe3: Inaccuracy
	 pvCurrent(6.17): Qe3 Qc4 Qe7 Rxd5 Rxd5 Qxd5 Bd6 c4 Kg7 g3 Kh8 Be6
	 pvAI(4.77): Qg5 Rf5 Ne7 Qe6+ Ng6 Rdf1 Qe3 Qxa6 Rd2 Qc4 Be7 R5f3 Qe5
30.Rxd5: Best Move
	 pvCurrent(6.33): Rxd5 Rxd5 Qxd5 Qe7 g3 Ba3 Qd2+ Kg7 Qd4+ Kg6 Bf5+ Kh6
	 pvAI(6.25): Rxd5 Rf8 Rdd1 Rxf1+ Rxf1 Qe7 Qg8 a5 Qg4 a4 g3 Qe5 Bg2 Qg5 Qh3+ Qh5
30...Re8: Blunder
	 pvCurrent(#4): Re8 Rh5+ Kxh5 Qf7+ Kh6 Qf6+ Kh5 g4#
	 pvAI(6.45): Rf8 Rdd1 Rxf1+ Rxf1 Qe7 g3 Bd6 Qd5 Bc7 Qd3 Bd6 Bg2 Qe5
31.Rdd1: Miss Move(Mate)
	 pvCurrent(6.74): Rdd1 Qg5 Qc4 Rf8 Rxf8 Bxf8 Qf7 Qe7 Qf3 Kg7 Rf1 Kh8 c4 Bh6 c5 Qe5 Qa8+ Kg7 Qf8+ Kg6
	 pvAI(#4): Rh5+ Kxh5 Qf7+ Kh6 Qf6+ Kh5 g4#
31...Qe2: Blunder
	 pvCurrent(#11): Qe2 Qf7 Rg8 Qxg8 Qe5 Rd7 Be7 Qf7 Qg7 Qe6+ Qg6 Qxe7 Qe4 Qf6+ Qg6 Qf8+ Kh5 Rf5+ Qg5
	 pvAI(6.67): Qe5 Qc4 Bd6 g3 Bc5 Bg2 Qg5 Rf7 Re7 Rxe7 Bxe7
32.Rf6+: Miss Move(Mate)
	 pvCurrent(7.41): Rf6+ Kg5 Rff1 Rf8 Rfe1 Qf2 Qd5+ Kg6 Re6+ Kg7 Qg5+ Kh8 Qe5+ Kg8 Re8 Rxe8 Qxe8+ Qf8 Qe6+ Qf7 Qe5 h6 Qxc5 Qe8 Qd4 Kh7 Bf5+ Kg8
	 pvAI(#11): Qf7 Rg8 Qxg8 Qe5 Rd7 Be7 Qf7 Qg7 Qe6+ Qg6 Qxe7 Qe4 Qf6+ Qg6 Qf8+ Kh5 Rf5+ Qg5 Rxh7+ Kg6
32...Kg5: Best Move
	 pvCurrent(#18): Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3 h6 Kg2
	 pvAI(#26): Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Qd6 Rxd6 Bxd6 Qf7 Be5 Qf5+ Kh6 Qe6+ Kg7 Qxe5+ Kf7 Qe6+ Kg7 Qe7+ Kg6 Qd6+ Kg7
33.Rf5+: Good(You could checkmate faster)
	 pvCurrent(#20): Rf5+ Kh6 Rf6+ Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3
	 pvAI(#18): Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3
33...Kh6: Best Move
	 pvCurrent(#19): Kh6 Rf6+ Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3
	 pvAI(#19): Kh6 Rf6+ Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3
34.Rf6+: Best Move
	 pvCurrent(#19): Rf6+ Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3
	 pvAI(#19): Rf6+ Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6
34...Kg5: Best Move
	 pvCurrent(#18): Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3 h6
	 pvAI(#18): Kg5 Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3 h6
35.Rf5+: Miss Move(Mate)
	 pvCurrent(6.97): Rf5+ Kh6 Rdf1 Bf2 g4 Qe6 R1xf2 Qxb3 cxb3 Re3 R5f3 Re1+ Kg2 Rb1 Rc2 Kg5 b4 Kg6
	 pvAI(#18): Rd5+ Re5 Rxe5+ Qxe5 Re6 Bd6 Rxe5+ Bxe5 Qg8+ Kh5 Qe8+ Kh6 Qxe5 Kg6 Qe6+ Kg7 Qe7+ Kg6 g3 h6
35...Kh6: Best Move
	 pvCurrent(7.04): Kh6 Rdf1 Bf2 g4 Qe6 R1xf2 Qxb3 cxb3 Kg7 Kg2 h6 Rc2 Re1 Rf3 Ra1 g5 hxg5 Bc8
	 pvAI(6.96): Kh6 Rdf1 Bf2 g4 Qe6 R1xf2 Qxb3 cxb3 Re3 R5f3 Re5 Kg2 Kg6 Kg3 Rd5 b4 h5 gxh5+ Kxh5 Bf1
36.Rdf1: Best Move
	 pvCurrent(7.11): Rdf1 Bf2 g4 Qe6 R1xf2 Qxb3 cxb3 a5 Kg2 Rc8 Rf6+ Kg7 R6f3 Rc5 Rc2 Rg5 Re2
	 pvAI(7.1): Rdf1 Bf2 g4 Qe6 R1xf2 Qxb3 cxb3 Re3 R5f3 Re1+ Kg2 a5 Rf6+ Kg7 g5 Re4 Bf5 Re5 h4 h5 Rc2 Re3 b4 axb4 cxb4
36...Qe1: Blunder
	 pvCurrent(#4): Qe1 Rh5+ Kxh5 Qf7+ Kh6 Qf6+ Kh5 g4#
	 pvAI(7.11): Bf2 g4 Qe6 R1xf2 Qxb3 cxb3 Rc8 R5f3 Rc5 Kg2 Kg7 Re2 Kg6 b4 Rg5 Re6+ Kg7 Rxa6 Re5 Kf2
37.Qf7: Good(You could checkmate faster)
	 pvCurrent(#6): Qf7 Qxf1+ Rxf1 Rg8 Qxg8 Bf2 Rxf2 a5 Rf6+ Kh5 Qg4#
	 pvAI(#4): Rh5+ Kxh5 Qf7+ Kh6 Qf6+ Kh5 g4#
37...Rf8: Good(You could delaying checkmate longer)
	 pvCurrent(#1): Rf8 Rh5#
	 pvAI(#5): Qxf1+ Rxf1 Rg8 Qxg8 Bf2 Rxf2 a5 Rf6+ Kh5 Qg4#
38.Qh5+: Good(You could checkmate faster)
	 pvCurrent(#7): Qh5+ Kg7 Qg5+ Kh8 Rxf8+ Bxf8 Qf6+ Bg7 Qd8+ Qe8 Qxe8+ Bf8 Qxf8#
	 pvAI(#1): Rh5#
38...Kg7: Best Move
	 pvCurrent(#5): Kg7 Qg5+ Kh8 Rxe1 Rxf5 Re8+ Rf8 Qe5+ Kg8 Be6#
	 pvAI(#6): Kg7 Qg5+ Kh8 Rxf8+ Bxf8 Qf6+ Bg7 Qd8+ Qe8 Qxe8+ Bf8 Qxf8#
39.Rg5+: Good(You could checkmate faster)
	 pvCurrent(#7): Rg5+ Kh8 Rxe1 Be7 Bf5 Rxf5 Rxf5 Bf6 Rxf6 Kg7 Qg5+ Kh8 Re8#
	 pvAI(#5): Qg5+ Kh8 Rxe1 Rxf5 Re8+ Rf8 Qe5+ Kg8 Be6#
39...Kh8: Best Move
	 pvCurrent(#6): Kh8 Rxe1 Be7 Bf5 Rxf5 Rxf5 Bf6 Rxf6 Kg7 Qg5+ Kh8 Re8#
	 pvAI(#6): Kh8 Rxe1 Be7 Bf5 Rxf5 Rxf5 Bf6 Rxf6 Kg7 Qg5+ Kh8 Re8#
40.Rxe1: Best Move
	 pvCurrent(#6): Rxe1 Be7 Bf5 Rxf5 Rxf5 Bf6 Rxf6 Kg7 Qg5+ Kh8 Re8#
	 pvAI(#6): Rxe1 Be7 Bf5 Rxf5 Rxf5 Bf6 Rxf6 Kg7 Qg5+ Kh8 Re8#
40...Be7: Best Move
	 pvCurrent(#5): Be7 Bf5 Rxf5 Rxf5 Bf6 Rxf6 Kg7 Qg5+ Kh8 Re8#
	 pvAI(#5): Be7 Bf5 Rxf5 Rxf5 Bf6 Rxf6 Kg7 Qg5+ Kh8 Re8#
41.Rge5: Good(You could checkmate faster)
	 pvCurrent(#7): Rge5 Bd8 Re8 Rxe8 Rxe8+ Kg7 Qe5+ Kg6 Rg8+ Kh6 Qg7+ Kh5 Qxh7#
	 pvAI(#4): Rg7 Kxg7 Rxe7+ Kf6 Rxh7 a5 Qf5#
41...Bf6: Best Alternative Move
	 pvCurrent(#6): Bf6 Re8 Rxe8 Rxe8+ Kg7 Qg4+ Bg5 Qxg5+ Kf7 Re7+ Kf8 Qg7#
	 pvAI(#6): Bd8 Re8 Rxe8 Rxe8+ Kg7 Qe5+ Kg6 Rg8+ Kh6 Qg7+ Kh5 Qxh7#
42.Re8: Good(You could checkmate faster)
	 pvCurrent(#6): Re8 Rxe8 Rxe8+ Kg7 Qg4+ Bg5 Qxg5+ Kf7 Re7+ Kf8 Qg7#
	 pvAI(#3): Bf5 h6 Qxh6+ Kg8 Qh7#
42...Rxe8: Best Move
	 pvCurrent(#5): Rxe8 Rxe8+ Kg7 Qg4+ Bg5 Qxg5+ Kf7 Re7+ Kf8 Qg7#
	 pvAI(#5): Rxe8 Rxe8+ Kg7 Qg4+ Bg5 Qxg5+ Kf7 Re7+ Kf8 Qg7#
43.Qxe8+: Good(You could checkmate faster)
	 pvCurrent(#6): Qxe8+ Kg7 Qd7+ Kh6 Qf7 Kg5 Re6 Be5 Rxe5+ Kh6 Rh5#
	 pvAI(#5): Rxe8+ Kg7 Qg4+ Bg5 Qxg5+ Kf7 Re7+ Kf8 Qg7#
43...Kg7: Best Move
	 pvCurrent(#5): Kg7 Qd7+ Kh6 Qf7 Kg5 Re6 Be5 Rxe5+ Kh6 Rh5#
	 pvAI(#5): Kg7 Qd7+ Kh6 Qf7 Kg5 Re6 Be5 Rxe5+ Kh6 Rh5#
44.Qd7+: Best Move
	 pvCurrent(#5): Qd7+ Kh6 Qf7 Kg5 Re6 Be5 Rxe5+ Kh6 Rh5#
	 pvAI(#5): Qd7+ Kh6 Qf7 Kg5 Re6 Be5 Rxe5+ Kh6 Rh5#
44...Kg6: Best Alternative Move
	 pvCurrent(#4): Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
	 pvAI(#4): Kh6 Qf7 Kg5 Re6 Be5 Rxe5+ Kh6 Rh5#
45.Qf5+: Good(You could checkmate faster)
	 pvCurrent(#6): Qf5+ Kg7 Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
	 pvAI(#4): Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
45...Kg7: Best Move
	 pvCurrent(#5): Kg7 Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
	 pvAI(#5): Kg7 Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
46.Qg4+: Good(You could checkmate faster)
	 pvCurrent(#6): Qg4+ Kf7 Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
	 pvAI(#5): Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
46...Kf7: Best Move
	 pvCurrent(#5): Kf7 Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
	 pvAI(#5): Kf7 Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
47.Qf3: Good(You could checkmate faster)
	 pvCurrent(#8): Qf3 a5 Qf5 Kg7 Qd7+ Kh6 Bf5 Bg7 Re6+ Bf6 Qxh7+ Kg5 Qg6+ Kf4 Re4#
	 pvAI(#5): Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
47...Kg7: Good(You could delaying checkmate longer)
	 pvCurrent(#6): Kg7 Qg4+ Kf7 Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#
	 pvAI(#7): a5 Qf5 Kg7 Qd7+ Kh6 Bf5 Bg7 Re6+ Bf6 Qxh7+ Kg5 Qg6+ Kf4 Re4#
48.c4: Good(You could checkmate faster)
	 pvCurrent(#7): c4 h5 Qxh5 a5 Re8 a4 Qh8+ Kg6 Rg8+ Bg7 Qxg7+ Kh5 Qh7#
	 pvAI(#6): Qg4+ Kf7 Qd7+ Kg6 Bf5+ Kg5 Qxh7 a5 Qg6+ Kf4 Re4#

There is many engines (like Wasp, Rebel, etc) which support UCI protocol without such nice feature. Of course I know that main focus of authors is not for analyzing but playing strength/style. However it is still a really missing point.

Wish that searchmoves sub-command will be implemented in Leorik.

Regards,
Cong

@lithander
Copy link
Owner

lithander commented Mar 13, 2024

Hi Cong and thanks for filing this issue. :)

The analysis you showed looks really useful but I'm not sure how you made Stockfish analyse your entire game for you! Can you explain the process?
Was there another tool involved that then talked to Stockfish via the uci interface and used this external "brain" for the game analysis?

I absolutely willing to make Leorik fit to be used for game analysis and add the missing features. Since I already support pv and cp in the info line do I understand you correctly that it is really just the 'searchmoves" subcommand that is missing? I'm sure I could add that in the next release!

@lithander
Copy link
Owner

I have just commited a patch that adds support for the searchmoves subcommand. If you can build from source let me know if it works as expected!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants