Ah, no, too much work.
I made a super fast shortie evaluator, it extracts shorties from megabase with 2.3M positions within 8 seconds, output 490.340 games with evaluation. First 2 games :
Code: Select all
[Event "London m8"]
[Site "London"]
[Date "1851.??.??"]
[White "Kieseritzky, Lionel"]
[Black "Anderssen, Adolf"]
[Result "1-0"]
[PlyCount "71"]
[Short "70"]
1. d4 d5 2. c4 dxc4 3. e3 e5 4. Bxc4 exd4 5. exd4 Bd6 6. Nf3 Nf6 7. Nc3 O-O 8.
O-O h6 9. Ne5 Nc6 10. f4 Ne7 11. Qb3 Bxe5 12. dxe5 Qd4+ 13. Kh1 Ng4 14. Nd1 b5
15. Be2 Be6 16. Qg3 h5 17. h3 Nh6 18. Bxh5 f6 19. Bf3 Rad8 20. Qf2 fxe5 21. Be3
Qd3 22. fxe5 Nhf5 23. Kh2 Ng6 24. Bg5 Rd7 25. Rc1 Nxe5 26. Rc3 Qd6 27. Bf4 g5
28. Rc6 Ng4+ 29. hxg4 Rh7+ 30. Kg1 Qxf4 31. g3 Nxg3 32. Rxe6 Nxf1 33. Kxf1 Rh1+
34. Bxh1 Qc4+ 35. Re2 Qxg4 36. Bd5+ 1-0
Code: Select all
[Event "London m9"]
[Site "London"]
[Date "1851.??.??"]
[White "Anderssen, Adolf"]
[Black "Loewenthal, Johann Jacob"]
[Result "0-1"]
[PlyCount "34"]
[Short "1200"]
1. e4 e5 2. Nf3 Nc6 3. d4 exd4 4. Bc4 Bc5 5. O-O d6 6. c3 d3 7. b4 Bb6 8. a4 a5
9. b5 Ne5 10. Nxe5 dxe5 11. Qh5 Qf6 12. Ba3 Ne7 13. Nd2 Be6 14. Bxd3 O-O-O 15.
Qe2 Ng6 16. g3 Bh3 17. c4 Nf4 0-1
How it works, draws are skipped, the move number is created from the PlyCount tag, when the move number is > 60 (currently hard coded) the game is skipped, no shortie. When <=60 it looks into a flexible table to get the evaluation score and stored in the Short tag.
The flexible table is stored in the file values.txt , in there are the evaluations based on move number.
Code: Select all
8000 7500 7000 6500 6000 5500 5000 4500 4000 3600
3200 2800 3500 2200 1900 1700 1500 1350 1200 1100
1000 900 800 700 600 500 450 400 350 300
250 210 180 150 120 95 70 50 35 25
10 5 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Another speed advantage is that you only have to do it once and the output file shorts-out.pgn is about 5 times shorter than the input file.
Operation :
. shorts.exe anand.pgn
. shorts.exe shortwins.pgn