ilari wrote:Long time no see, TalkChess! Yes, we had a little hackathon with Arto, which mostly consisted of debugging the Windows version.
Suggestions:
1. In the pgn output, add hmvc and fmvn in the FEN tag. Sample,
[Event "?"]
[Site "?"]
[Date "2015.08.30"]
[Round "2"]
[White "Cheng_4.39_x64"]
[Black "D2015.1.35.247"]
[Result "1/2-1/2"]
[FEN "1qr2k2/1r4pp/3RRp2/1p2pP2/p3Q3/P1P3P1/1P4KP/8 w - -"]
[PlyCount "41"]
[SetUp "1"]
[TimeControl "5+0.1"]
to
[FEN "1qr2k2/1r4pp/3RRp2/1p2pP2/p3Q3/P1P3P1/1P4KP/8 w - -
0 1"]
This happens when the supplied epd line to cutechess does not include the opcode hmvc and fmvn. Since this is a FEN tag I think it is reasonable to just add 0 for hmvc and 1 for fmvn.
2. Add termination tag to every pgn headers.
Sample,
[Event "?"]
[Site "?"]
[Date "2015.08.30"]
[Round "2"]
[White "Cheng_4.39_x64"]
[Black "D2015.1.35.247"]
[Result "1/2-1/2"]
[FEN "1qr2k2/1r4pp/3RRp2/1p2pP2/p3Q3/P1P3P1/1P4KP/8 w - -"]
[PlyCount "41"]
[SetUp "1"]
[TimeControl "5+0.1"]
1. h3 {+0.94/11 0.29s} Kg8 {-0.45/12 0.10s} 2. Qd5 {+0.96/13 0.28s}
Kh8 {-0.53/14 0.24s} 3. g4 {+1.04/13 0.28s} Rf8 {-0.49/12 0.22s}
4. h4 {+1.00/13 0.25s} Qc7 {-0.58/12 0.23s} 5. h5 {+0.67/11 0.24s}
h6 {-0.36/11 0.10s} 6. Rc6 {+0.54/14 0.27s} Qb8 {-0.55/12 0.18s}
7. Red6 {+0.43/14 0.26s} Kh7 {-0.45/12 0.12s} 8. Kf3 {+0.27/13 0.24s}
Re8 {-0.36/12 0.22s} 9. Ke4 {+0.26/14 0.22s} Qa7 {-0.24/11 0.21s}
10. Qc5 {+0.26/14 0.24s} Qa8 {-0.21/11 0.21s} 11. Kd3 {+0.13/12 0.21s}
Rd8 {-0.40/10 0.21s} 12. Ke3 {+0.16/15 0.21s} Qb8 {-0.18/11 0.13s}
13. Ra6 {+0.15/14 0.23s} Rc7 {0.00/14 0.24s} 14. Rac6 {0.00/15 0.20s}
Rxd6 {+1.10/17 0.35s} 15. Rxc7 {0.00/18 0.22s} Qd8 {0.00/16 0.071s}
16. Rc8 {0.00/17 0.17s} Rd3+ {0.00/19 0.072s} 17. Ke4 {0.00/19 0.18s}
Qd7 {0.00/21 0.11s} 18. Rc7 {0.00/19 0.20s} Qd8 {0.00/19 0.081s}
19. Rc8 {0.00/18 0.16s} Qd7 {0.00/28 0.070s} 20. Rc7 {0.00/20 0.20s}
Qd8 {0.00/22 0.12s} 21. Rc8 {0.00/19 0.16s, Draw by 3-fold repetition} 1/2-1/2
Change to,
[Event "?"]
[Site "?"]
[Date "2015.08.30"]
[Round "2"]
[White "Cheng_4.39_x64"]
[Black "D2015.1.35.247"]
[Result "1/2-1/2"]
[FEN "1qr2k2/1r4pp/3RRp2/1p2pP2/p3Q3/P1P3P1/1P4KP/8 w - -"]
[PlyCount "41"]
[SetUp "1"]
[Termination "Draw by 3-fold repetition"]
[TimeControl "5+0.1"]
[...]
This way it is easy to see what had happened by just looking at the headers, this is also convenient when parsing termination stats of every players from a given game files,
useful in engine development, especially those on time forfeits and illegal move loses, and those 3-fold repeats.