SCID has an "annotate" button in its engine analysis window with a lot of flexibility.
PyChess has a very crude version of this, implemented as a script. It can analyze with any engine that PyChess itself can find. (See below.)
Crafty has an "annotate" command which is much better. It analyzes with Crafty, of course.
from within its source tree. I don't think distros install this script anywhere, but I could be wrong. You can see that it's far from perfect, but not useless.
Code: Select all
[justinb@coconut ~]$ cd ~/code/pychess/
[justinb@coconut pychess]$ PYTHONPATH=lib/ ./utilities/blunders.py ~/Downloads/andriasian_litwiniec_2010.pgn
Selected file /home/justinb/Downloads/andriasian_litwiniec_2010.pgn
The file contains the following games:
[0] Zaven Andriasian vs. Miroslawa Litwiniec
Autoselecting game 0.
PyChess found the following analyzers on your system:
[0] Stockfish 120118 64bit SSE4.2
[1] PyChess 0.10
[2] Critter 1.4 64-bit SSE4
[3] Toga II 1.3.1
[4] Komodo64 3 sse4.2
[5] Crafty-23.4
What engine should be your analyzer? [n] 0
Enter how many seconds we should use for each move [n]: 5
Stockfish 120118 64bit SSE4.2 will now analyze the game between Zaven Andriasian and Miroslawa Litwiniec with 5 seconds per move.
.....................
Considering 17 Rd8+ ................................
White blunder -1916
Should have done: Rd8+, Kxd8, Qxf7, Bh3, Qxg7, Re8, Rd1+, Kc8, gxh3, Kb8, Qg6, Rh8, Qxe4, Rc8, e6, a5, e7, Ka7, Bc5+, b6, Bxb6+, Kxb6, Rb1+, Kc5, Qe3+, Kc6, Qe6+, Kc5, Qd7, Rg8+, Kf1
Considering 17 Qxf7 ................................
Considering 16 Bxf7+ ..........................
Considering 16 Qf5 ..........................
Black blunder 711
Should have done: Nd6, Bxd6, cxd6, Bb5, O-O, Bxd7, Bxd7, Qxb7, Rfd8, exd6, Rab8, Qxa7, Ra8, Qc7, Rac8, Qb6, Rb8, Qd4, Ra8, Rd2, Ra4, c4, Rda8, Rb1, Rxa2, Rxa2
Considering 15 Rad1 .........................
Considering 15 Ne4 ..........................
Black blunder 220
Should have done: c5, Rad1, Qc7, Bxf7+, Qxf7, Rd8+, Kxd8, Qxf7, Nd7, Rd1, Re8, e6, Re7, Qf8+, Re8, e7+
Considering 14 dxe5 .........................
White blunder -148
Should have done: dxe5, c5, Rad1, O-O, Rxd7, Nxd7, Bxf7+, Rxf7, e6, Ne5, exf7+, Nxf7, Re1, Bg4, Re7, Rf8, Rxb7, Bh5, Qe6, Kh7, Bxc5, Rd8, Bd4, Rd6, Qb3, Kg8, Rxf7, Bxf7, Qb8+, Kh7
Considering 14 Nxe5 ...........................
Black blunder 235
Should have done: Na5, Qb1, Nxc4, Nxd7, Kxd7, Qb5+, Kd8, Qxc4, Be6, Qd3, Re8, Qg3, Ne4, Qxg7, Nxc3, Rfe1, a5, Qxh6, Kc8, Qc1, Nd5, Rb1, Ra6, Qc5, Rb6, Qxa5, Rxb1, Rxb1
Considering 13 Nxe5 ........................
Considering 13 Qd7 .............................
Black blunder 226
Should have done: Na5, Qa4+, Bd7, Qxa5, b6, Qa6, c5, Nxe5, O-O, Ng6, Qe4, Nxf8, Bc6, f3, Qe3+, Kh1, Rxf8, dxc5, Ra8, Rfd1, Qxc3, Rac1, Qe5, cxb6, axb6, Qxb6, Rxa3, Qxc6
Considering 12 Ba3 ........................
Considering 12 dxe5 .......................
Black blunder 368
Should have done: O-O, exf6, Qxf6, Bd3, Bg4, Nd2, Rab8, Ne4, Qg6, Qc2, Bf5, Nf6+, Qxf6, Bxf5, g6, Bd3, Rfe8, Rb1, Qh8, Bf4
Considering 11 e5 ........................
Considering 11 Nf6 .....................
Black blunder 239
Should have done: b6, Qd1, Na5, Bd3, Be6, Re1, O-O-O, Ba3, Bc4, e5, Qd7, Bb4, Bxd3, Qxd3
Considering 10 O-O ...................
Considering 10 Qe7 .......................
Considering 9 bxc3 .....................
Considering 9 Bxc3+ ......................
Considering 8 Qb3 ....................
Considering 8 h6 .....................
Considering 7 Nc3 .....................
Considering 7 Bb4+ .....................
Considering 6 cxd4 ...................
Considering 6 exd4 ......................
Considering 5 d4 ....................
Considering 5 d6 ....................
Considering 4 c3 ....................
Considering 4 Bc5 .....................
Considering 3 Bc4 ......................
Considering 3 Nc6 .....................
Considering 2 Nf3 .....................
Considering 2 e5 ....................
Considering 1 e4 ..................... Finish