I wrote a program that converts moves in ICCF notation into a total of ten notations:
- SAN
- FAN
- LAN
- MAN
- RAN
- CRAN
- Smith
- Descriptive
- Coordinate
- ICCF
I previously posted a question asking for suggestions of unusual circumstances (like a pawn that captures into a promotion) so that I could make sure my program was assembling the notations correctly, but perhaps "raise your hand if you aren't here" wasn't the best approach.
What I've done now is converted the Byrne-Fischer Game of the Century into ICCF and run it through the program. Since this game is available in SAN on its Wikipedia page, I was at least able to make sure my program's output matched those moves. After cleaning up the code for disambiguation and castling, it is now a correct match.
My current hope is to get some reviews of the full output. I realize this match doesn't have some basic stuff like promotions, but maybe there are errors in the other notations (especially descriptive - I can't make head or tail of that stuff), and maybe seeing this output will help prompt some ideas for other situations I can test.
SAN FAN LAN MAN RAN CRAN Smith Descriptive Coord ICCF Comments
Nf3 ♘f3 Ng1-f3 Nf3 Ng1-f3 Nf3 g1f3 KN1N-KB3 G1-F3 7163
Nf6 ♞f6 Ng8-f6 Nf6 Ng8-f6 Nf6 g8f6 KN1N-KB3 G8-F6 7866
c4 c4 c2-c4 c4 c2-c4 c4 c2c4 QB2P-QB4 C2-C4 3234
g6 g6 g7-g6 g6 g7-g6 g6 g7g6 KN2P-KN3 G7-G6 7776
Nc3 ♘c3 Nb1-c3 Nc3 Nb1-c3 Nc3 b1c3 QN1N-QB3 B1-C3 2133
Bg7 ♝g7 Bf8-g7 Bg7 Bf8-g7 Bg7 f8g7 KB1B-KN2 F8-G7 6877
d4 d4 d2-d4 d4 d2-d4 d4 d2d4 Q2P-Q4 D2-D4 4244
0-0 0-0 0-0 0-0 0-0 0-0 e8g8c O-O E8-G8 5878
Bf4 ♗f4 Bc1-f4 Bf4 Bc1-f4 Bf4 c1f4 QB1B-KB4 C1-F4 3164
d5 d5 d7-d5 d5 d7-d5 d5 d7d5 Q2P-Q4 D7-D5 4745
Qb3 ♛b3 Qd1-b3 Qb3 Qd1-b3 Qb3 d1b3 Q1Q-QN3 D1-B3 4123
dxc4 dxc4 d5xc4 dc4 d5xPc4 d:Pc4 d5c4p Q4PxQB5P D5-C4 4534
Qxc4 ♛xc4 Qb3xc4 Qc4 Qb3xPc4 Q:Pc4 b3c4p QN3QxQB4P B3-C4 2334
c6 c6 c7-c6 c6 c7-c6 c6 c7c6 QB2P-QB3 C7-C6 3736
e4 e4 e2-e4 e4 e2-e4 e4 e2e4 K2P-K4 E2-E4 5254
Nd7 ♞d7 Nb8-d7 Nd7 Nb8-d7 Nd7 b8d7 QN1N-Q2 B8-D7 2847
Rd1 ♖d1 Ra1-d1 Rd1 Ra1-d1 Rd1 a1d1 QR1R-Q1 A1-D1 1141
Nb6 ♞b6 Nd7-b6 Nb6 Nd7-b6 Nb6 d7b6 Q2N-QN3 D7-B6 4726
Qc5 ♛c5 Qc4-c5 Qc5 Qc4-c5 Qc5 c4c5 QB4Q-QB5 C4-C5 3435
Bg4 ♝g4 Bc8-g4 Bg4 Bc8-g4 Bg4 c8g4 QB1B-KN5 C8-G4 3874
Bg5 ♗g5 Bf4-g5 Bg5 Bf4-g5 Bg5 f4g5 KB4B-KN5 F4-G5 6475 ?
Na4 ♞a4 Nb6-a4 Na4 Nb6-a4 Na4 b6a4 QN3N-QR5 B6-A4 2614 !!
Qa3 ♛a3 Qc5-a3 Qa3 Qc5-a3 Qa3 c5a3 QB5Q-QR3 C5-A3 3513
Nxc3 ♞xc3 Na4xc3 Nc3 Na4xNc3 N:Nc3 a4c3n QR5NxQB6N A4-C3 1433
bxc3 bxc3 b2xc3 bc3 b2xNc3 b:Nc3 b2c3n QN2PxQB3N B2-C3 2233
Nxe4 ♞xe4 Nf6xe4 Ne4 Nf6xPe4 N:Pe4 f6e4p KB3NxK5P F6-E4 6654 !
Bxe7 ♗xe7 Bg5xe7 Be7 Bg5xPe7 B:Pe7 g5e7p KN5BxK7P G5-E7 7557
Qb6 ♕b6 Qd8-b6 Qb6 Qd8-b6 Qb6 d8b6 Q1Q-QN3 D8-B6 4826
Bc4 ♗c4 Bf1-c4 Bc4 Bf1-c4 Bc4 f1c4 KB1B-QB4 F1-C4 6134
Nxc3 ♞xc3 Ne4xc3 Nc3 Ne4xPc3 N:Pc3 e4c3p K5NxQB6P E4-C3 5433 !
Bc5 ♗c5 Be7-c5 Bc5 Be7-c5 Bc5 e7c5 K7B-QB5 E7-C5 5735
Rfe8+ ♜fe8+ Rf8-e8+ Rfe8 Rf8-e8+ Rfe8+ f8e8 KB1R-K1+ F8-E8 6858
Kf1 ♔f1 Ke1-f1 Kf1 Ke1-f1 Kf1 e1f1 K1K-KB1 E1-F1 5161
Be6 ♝e6 Bg4-e6 Be6 Bg4-e6 Be6 g4e6 KN5B-K3 G4-E6 7456 !!
Bxb6 ♗xb6 Bc5xb6 Bb6 Bc5xQb6 B:Qb6 c5b6q QB5BxQN6Q C5-B6 3526 ?
Bxc4+ ♝xc4+ Be6xc4+ Bc4 Be6xBc4+ B:Bc4+ e6c4b K3BxQB5B+ E6-C4 5634
Kg1 ♔g1 Kf1-g1 Kg1 Kf1-g1 Kg1 f1g1 KB1K-KN1 F1-G1 6171
Ne2+ ♞e2+ Nc3-e2+ Ne2 Nc3-e2+ Ne2+ c3e2 QB6N-K7+ C3-E2 3352
Kf1 ♔f1 Kg1-f1 Kf1 Kg1-f1 Kf1 g1f1 KN1K-KB1 G1-F1 7161
Nxd4+ ♞xd4+ Ne2xd4+ Nd4 Ne2xPd4+ N:Pd4+ e2d4p K7NxQ5P+ E2-D4 5244
Kg1 ♔g1 Kf1-g1 Kg1 Kf1-g1 Kg1 f1g1 KB1K-KN1 F1-G1 6171
Ne2+ ♞e2+ Nd4-e2+ Ne2 Nd4-e2+ Ne2+ d4e2 Q5N-K7+ D4-E2 4452
Kf1 ♔f1 Kg1-f1 Kf1 Kg1-f1 Kf1 g1f1 KN1K-KB1 G1-F1 7161
Nc3+ ♞c3+ Ne2-c3+ Nc3 Ne2-c3+ Nc3+ e2c3 K7N-QB6+ E2-C3 5233
Kg1 ♔g1 Kf1-g1 Kg1 Kf1-g1 Kg1 f1g1 KB1K-KN1 F1-G1 6171
axb6 axb6 a7xb6 ab6 a7xBb6 a:Bb6 a7b6b QR2PxQN3B A7-B6 1726
Qb4 ♛b4 Qa3-b4 Qb4 Qa3-b4 Qb4 a3b4 QR3Q-QN4 A3-B4 1324
Ra4 ♜a4 Ra8-a4 Ra4 Ra8-a4 Ra4 a8a4 QR1R-QR5 A8-A4 1814 !
Qxb6 ♛xb6 Qb4xb6 Qb6 Qb4xPb6 Q:Pb6 b4b6p QN4QxQN6P B4-B6 2426
Nxd1 ♞xd1 Nc3xd1 Nd1 Nc3xRd1 N:Rd1 c3d1r QB6NxQ8R C3-D1 3341
h3 h3 h2-h3 h3 h2-h3 h3 h2h3 KR2P-KR3 H2-H3 8283
Rxa2 ♜xa2 Ra4xa2 Ra2 Ra4xPa2 R:Pa2 a4a2p QR5RxQR7P A4-A2 1412
Kh2 ♔h2 Kg1-h2 Kh2 Kg1-h2 Kh2 g1h2 KN1K-KR2 G1-H2 7182
Nxf2 ♞xf2 Nd1xf2 Nf2 Nd1xPf2 N:Pf2 d1f2p Q8NxKB7P D1-F2 4162
Re1 ♖e1 Rh1-e1 Re1 Rh1-e1 Re1 h1e1 KR1R-K1 H1-E1 8151
Rxe1 ♜xe1 Re8xe1 Re1 Re8xRe1 R:Re1 e8e1r K1RxK8R E8-E1 5851
Qd8+ ♛d8+ Qb6-d8+ Qd8 Qb6-d8+ Qd8+ b6d8 QN6Q-Q8+ B6-D8 2648
Bf8 ♝f8 Bg7-f8 Bf8 Bg7-f8 Bf8 g7f8 KN2B-KB1 G7-F8 7768
Nxe1 ♘xe1 Nf3xe1 Ne1 Nf3xRe1 N:Re1 f3e1r KB3NxK1R F3-E1 6351
Bd5 ♝d5 Bc4-d5 Bd5 Bc4-d5 Bd5 c4d5 QB5B-Q4 C4-D5 3445
Nf3 ♘f3 Ne1-f3 Nf3 Ne1-f3 Nf3 e1f3 K1N-KB3 E1-F3 5163
Ne4 ♞e4 Nf2-e4 Ne4 Nf2-e4 Ne4 f2e4 KB7N-K5 F2-E4 6254
Qb8 ♛b8 Qd8-b8 Qb8 Qd8-b8 Qb8 d8b8 Q8Q-QN8 D8-B8 4828
b5 b5 b7-b5 b5 b7-b5 b5 b7b5 QN2P-QN4 B7-B5 2725
h4 h4 h3-h4 h4 h3-h4 h4 h3h4 KR3P-KR4 H3-H4 8384
h5 h5 h7-h5 h5 h7-h5 h5 h7h5 KR2P-KR4 H7-H5 8785
Ne5 ♘e5 Nf3-e5 Ne5 Nf3-e5 Ne5 f3e5 KB3N-K5 F3-E5 6355
Kg7 ♚g7 Kg8-g7 Kg7 Kg8-g7 Kg7 g8g7 KN1K-KN2 G8-G7 7877
Kg1 ♔g1 Kh2-g1 Kg1 Kh2-g1 Kg1 h2g1 KR2K-KN1 H2-G1 8271
Bc5+ ♝c5+ Bf8-c5+ Bc5 Bf8-c5+ Bc5+ f8c5 KB1B-QB4+ F8-C5 6835
Kf1 ♔f1 Kg1-f1 Kf1 Kg1-f1 Kf1 g1f1 KN1K-KB1 G1-F1 7161
Ng3+ ♞g3+ Ne4-g3+ Ng3 Ne4-g3+ Ng3+ e4g3 K5N-KN6+ E4-G3 5473
Ke1 ♔e1 Kf1-e1 Ke1 Kf1-e1 Ke1 f1e1 KB1K-K1 F1-E1 6151
Bb4+ ♝b4+ Bc5-b4+ Bb4 Bc5-b4+ Bb4+ c5b4 QB4B-QN5+ C5-B4 3524
Kd1 ♔d1 Ke1-d1 Kd1 Ke1-d1 Kd1 e1d1 K1K-Q1 E1-D1 5141
Bb3+ ♝b3+ Bd5-b3+ Bb3 Bd5-b3+ Bb3+ d5b3 Q4B-QN6+ D5-B3 4523
Kc1 ♔c1 Kd1-c1 Kc1 Kd1-c1 Kc1 d1c1 Q1K-QB1 D1-C1 4131
Ne2+ ♞e2+ Ng3-e2+ Ne2 Ng3-e2+ Ne2+ g3e2 KN6N-K7+ G3-E2 7352
Kb1 ♔b1 Kc1-b1 Kb1 Kc1-b1 Kb1 c1b1 QB1K-QN1 C1-B1 3121
Nc3+ ♞c3+ Ne2-c3+ Nc3 Ne2-c3+ Nc3+ e2c3 K7N-QB6+ E2-C3 5233
Kc1 ♔c1 Kb1-c1 Kc1 Kb1-c1 Kc1 b1c1 QN1K-QB1 B1-C1 2131
Rc2 ♜c2 Ra2-c2 Rc2 Ra2-c2 Rc2 a2c2 QR7R-QB7 A2-C2 1232 # 0-1
I got the ICCF notations by running through this match in my chess program and then converting its internal move notation to ICCF. I added the check indicators, annotation, etc. to the ICCF moves manually. You can see that I currently consider the check indicator to be part of a move, but anything else (e.g. !
, #
) is considered a comment. I don't know if that's correct, either.
dc4
would be more idiomatic asdc
, which is the standard minimal way to write captures of pawns by pawns.