The discussion would not be complete without this link:
http://www.gotw.ca/gotw/072.htm
"Data Formats and Efficiency. How good are you at choosing highly
compact and memory-efficient data formats? How good are you at writing
bit-twiddling code? This GotW gives you ample opportunity to exercise
both skills, as we consider efficient representations of chess games and a
BitBuffer to hold them."
And just for fun I add this:
This is a 'game' that is merged from all 27202 games in the database gm2600.pgn.
The +win=draw-loss numbers are written in comments.
I reduced this opening database 'game' to variants
with a maximum depth of 6 half moves and at least 20
played games with the help of some filter functions.
Code: Select all
1. e4 {+2725=4855-1579} (1. d4 {+3228=6480-2014} Nf6 {+2223=4463-1406} (1... d6
{+108=156-51} 2. c4 {+20=29-9} (2. Nf3 {+39=64-18} Bg4 {+16=33-7} (2... g6
{+15=24-10} 3. c4 {+8=11-6} Bg7 {+7=10-6}) 3. c4 {+13=21-3} Nd7 {+9=15-3}) (2.
e4 {+42=60-23} Nf6 {+27=43-19} (2... g6 {+14=17-4} 3. Nc3 {+7=12-2}) 3. f3
{+5=10-5} (3. Nc3 {+20=30-13} g6 {+17=25-12})) 2... e5 {+16=24-5} 3. Nf3
{+14=19-5} e4 {+8=16-3}) (1... d5 {+658=1464-402} 2. c4 {+578=1247-351} (2. Nf3
{+66=194-41} Nf6 {+42=121-22} (2... c6 {+8=23-8} 3. c4 {+7=18-3}) (2... e6
{+7=27-5} 3. c4 {+6=21-4} dxc4 {+5=14-2}) (2... c5 {+4=14-4}) 3. c4
{+39=114-22} c6 {+21=43-14} (3... dxc4 {+13=48-3}) (3... e6 {+4=23-5})) (2. Bg5
{+11=17-7}) 2... e6 {+171=370-76} (2... dxc4 {+130=257-78} 3. e3 {+27=44-12}
(3. Nf3 {+51=122-34} a6 {+16=35-8} (3... Nf6 {+25=79-23})) (3. e4 {+51=84-30}
Nf6 {+18=36-15} (3... c5 {+8=5-8}) (3... Nc6 {+9=11-4}) (3... e5 {+16=32-3}))
3... Nf6 {+15=28-11}) (2... c6 {+264=607-187} 3. e3 {+13=42-8} (3. Nc3
{+120=248-83} Nf6 {+100=228-73} (3... e5 {+8=8-6})) (3. Nf3 {+121=285-89} Nf6
{+118=281-85}) (3. cxd5 {+8=30-6} cxd5 {+8=30-6}) 3... Nf6 {+11=35-7}) 3. Nc3
{+120=263-53} (3. Nf3 {+49=105-23} c6 {+5=16-2} (3... Nf6 {+29=73-18}) (3... c5
{+14=13-2})) 3... Be7 {+52=113-14} (3... c5 {+10=28-8}) (3... c6 {+14=30-9})
(3... Nf6 {+37=78-18}) (3... Bb4 {+6=11-4})) (1... e6 {+137=225-81} 2. c4
{+101=131-55} (2. Nf3 {+20=46-12} Nf6 {+7=13-4} (2... f5 {+7=11-3})) (2. e4
{+14=44-12} d5 {+14=38-10} 3. Nd2 {+5=15-0} (3. Nc3 {+2=16-6})) 2... b6
{+10=16-9} (2... Bb4+ {+14=28-7} 3. Bd2 {+10=20-2}) (2... Nf6 {+30=54-21} 3.
Nf3 {+18=34-12} (3. Nc3 {+10=20-8} Bb4 {+8=19-7}) 3... b6 {+10=18-4}) (2... d5
{+16=11-7} 3. Nc3 {+9=8-4}) (2... f5 {+28=22-11} 3. g3 {+22=13-7} Nf6
{+22=13-7})) (1... f5 {+57=107-50} 2. Nc3 {+8=11-5} (2. g3 {+31=51-28} Nf6
{+27=48-26} 3. Bg2 {+27=47-26} g6 {+19=30-14}) (2. c4 {+13=14-6} Nf6
{+13=12-6}) (2. Nf3 {+5=24-8} Nf6 {+3=20-8})) (1... g6 {+30=41-17} 2. e4
{+15=23-7} (2. c4 {+9=13-7} Bg7 {+9=12-6}) 2... Bg7 {+9=17-6}) (1... c5
{+7=14-4} 2. d5 {+6=10-4}) 2. c4 {+1832=3482-1113} (2. Nf3 {+360=911-253} g6
{+121=309-108} (2... e6 {+151=414-111} 3. c4 {+94=255-69} (3. e3 {+7=31-8} c5
{+3=16-3} (3... b6 {+4=14-5})) (3. Bg5 {+20=61-16} h6 {+5=17-6} (3... c5
{+11=37-9})) (3. g3 {+28=64-18} b6 {+9=17-8} (3... b5 {+10=29-6})) 3... b6
{+50=156-39} (3... Bb4+ {+13=39-11}) (3... c5 {+17=22-13}) (3... d5
{+11=36-6})) (2... d5 {+42=114-21} 3. c4 {+41=109-19} e6 {+24=81-14} (3... c6
{+12=19-5})) (2... c5 {+31=35-8} 3. d5 {+28=28-8} b5 {+10=9-4} (3... g6
{+10=12-3})) (2... b6 {+4=23-1}) (2... d6 {+11=12-3}) 3. Bf4 {+4=16-12} (3. c4
{+72=142-53} Bg7 {+69=136-53}) (3. g3 {+31=77-12} Bg7 {+24=58-11} (3... d5
{+4=16-0})) (3. Bg5 {+10=55-23} Bg7 {+10=53-23}) (3. c3 {+4=14-3} Bg7
{+4=14-3}) 3... Bg7 {+4=16-12}) (2. Bg5 {+26=54-35} Ne4 {+12=24-14} (2... e6
{+11=11-9}) 3. Bf4 {+9=18-7}) 2... e6 {+1101=2352-669} (2... g6 {+543=881-334}
3. Nc3 {+446=678-284} (3. g3 {+38=89-18} c6 {+5=25-3} (3... Bg7 {+31=53-14}))
(3. Nf3 {+55=111-27} Bg7 {+55=111-27}) 3... d5 {+171=292-110} (3... Bg7
{+274=384-173})) (2... c5 {+128=157-86} 3. d5 {+110=143-75} (3. Nf3 {+14=13-10}
cxd4 {+13=10-10}) 3... b5 {+47=70-37} (3... g6 {+17=26-13}) (3... e6
{+21=24-12}) (3... e5 {+14=7-5}) (3... d6 {+9=15-8})) (2... c6 {+24=29-7} 3.
Nc3 {+16=22-5} d5 {+15=21-5}) (2... d6 {+28=46-14} 3. Nc3 {+25=36-10} Nd7
{+12=21-4}) (2... e5 {+5=15-2} 3. dxe5 {+5=14-2} Ng4 {+5=14-2}) 3. Nf3
{+601=1350-338} (3. Nc3 {+440=831-285} Bb4 {+375=721-258} (3... d5 {+51=99-22})
(3... c5 {+14=10-5})) (3. g3 {+59=168-46} c5 {+8=22-10} (3... d5 {+28=108-22})
(3... Bb4+ {+23=36-14})) 3... d5 {+142=357-91} (3... b6 {+333=743-177}) (3...
Bb4+ {+84=198-44}) (3... c5 {+42=52-25})) (1. c4 {+789=1644-463} Nf6
{+252=492-132} (1... c6 {+35=90-28} 2. e4 {+10=28-13} (2. Nf3 {+8=17-2} d5
{+6=17-2}) (2. d4 {+17=33-8} d5 {+16=33-8} 3. Nf3 {+7=14-2} (3. Nc3 {+7=12-4})
3... Nf6 {+7=13-2}) 2... d5 {+8=25-12} 3. exd5 {+6=23-9} cxd5 {+5=19-6}) (1...
e5 {+183=367-123} 2. g3 {+30=68-26} (2. Nc3 {+149=295-97} Nc6 {+35=94-29} (2...
Bb4 {+19=20-9} 3. Ncd5 {+16=16-6} Be7 {+10=6-5}) (2... d6 {+29=27-10} 3. Nf3
{+9=11-4} (3. g3 {+12=13-2})) (2... Nf6 {+65=153-48} 3. Nf3 {+47=121-38} (3. g3
{+18=30-10} Bb4 {+4=16-4} (3... d5 {+10=5-5})) 3... Nc6 {+46=119-37}) 3. g3
{+20=58-13} (3. Nf3 {+14=31-12} Nf6 {+5=20-9}) 3... g6 {+15=55-12}) 2... Nf6
{+12=32-12} (2... Nc6 {+8=26-10} 3. Bg2 {+7=25-10} g6 {+7=18-8}) 3. Bg2
{+12=32-12} d5 {+7=12-7}) (1... c5 {+117=277-63} 2. Nf3 {+86=188-36} (2. g3
{+19=49-10} g6 {+12=33-6} 3. Bg2 {+11=31-6} Bg7 {+11=31-6}) (2. Nc3 {+11=38-15}
g6 {+2=16-5} (2... Nc6 {+4=14-3})) 2... Nf6 {+52=133-24} (2... Nc6 {+19=38-7}
3. d4 {+7=16-4} (3. Nc3 {+10=21-3} Nf6 {+6=13-2}) 3... cxd4 {+7=16-4}) (2... g6
{+13=13-3}) 3. g3 {+3=17-5} (3. Nc3 {+48=108-18} Nc6 {+19=41-5} (3... e6
{+19=41-9}) (3... d5 {+9=19-4}))) (1... e6 {+120=270-70} 2. Nf3 {+21=63-18} (2.
g3 {+12=47-16} d5 {+11=39-14} 3. Bg2 {+11=32-13} Nf6 {+10=22-6}) (2. Nc3
{+76=128-33} d5 {+55=98-25} 3. d4 {+55=97-24} Be7 {+20=38-11} (3... Nf6
{+24=45-11})) (2. d4 {+10=32-3} d5 {+8=22-3} 3. Nc3 {+7=13-3}) 2... d5
{+13=30-10} (2... Nf6 {+7=33-8} 3. Nc3 {+4=12-4} (3. g3 {+3=17-3})) 3. d4
{+7=17-6} Nf6 {+7=15-3}) (1... g6 {+56=117-40} 2. d4 {+24=30-6} (2. Nc3
{+14=43-18} Bg7 {+12=32-14} 3. g3 {+3=23-11}) (2. e4 {+13=21-11} Bg7 {+7=16-7}
3. d4 {+7=16-7} d6 {+7=16-7}) 2... Bg7 {+11=18-4} (2... Nf6 {+13=11-2}) 3. Nc3
{+5=11-4}) (1... f5 {+12=16-2}) (1... b6 {+12=13-4}) 2. Nc3 {+195=323-101} (2.
Nf3 {+31=122-15} g6 {+7=17-4} (2... c6 {+3=16-1}) (2... c5 {+7=20-4} 3. Nc3
{+6=11-4}) (2... e6 {+11=46-3} 3. g3 {+5=20-2}) (2... b6 {+3=23-3} 3. g3
{+3=16-2} Bb7 {+2=16-2})) (2. g3 {+16=25-7}) (2. d4 {+9=22-9} e6 {+4=15-8})
2... g6 {+31=40-21} (2... e5 {+26=61-28} 3. Nf3 {+25=51-25} Nc6 {+25=51-25})
(2... c5 {+48=73-22} 3. Nf3 {+34=44-13} (3. g3 {+14=29-9} e6 {+10=15-3}) 3...
d5 {+11=7-4} (3... e6 {+11=25-6}) (3... Nc6 {+7=10-3})) (2... d5 {+16=21-4} 3.
cxd5 {+14=20-4} Nxd5 {+14=20-4}) (2... e6 {+66=118-26} 3. Nf3 {+49=81-19} (3.
e4 {+9=21-3}) (3. d4 {+8=16-3} Bb4 {+8=12-2}) 3... b6 {+16=27-6} (3... d5
{+18=32-6}) (3... c5 {+7=15-3})) 3. g3 {+9=17-6} (3. e4 {+16=14-12} d6
{+16=14-12}) 3... Bg7 {+9=15-5}) (1. Nf3 {+800=1946-451} d5 {+179=465-93} (1...
Nf6 {+440=1115-241} 2. c4 {+367=896-180} (2. d4 {+21=74-18} g6 {+8=31-4} (2...
e6 {+9=20-8} 3. c4 {+7=13-5}) (2... d5 {+3=17-2})) (2. g3 {+51=136-39} b6
{+2=17-6} (2... d5 {+20=50-15} 3. Bg2 {+19=49-15} c6 {+12=31-13}) (2... g6
{+21=57-12} 3. Bg2 {+13=30-9} (3. b3 {+5=15-2} Bg7 {+5=14-2}) 3... Bg7
{+13=28-9}) 3. Bg2 {+2=15-6} Bb7 {+2=15-6}) 2... g6 {+106=223-39} (2... e6
{+126=321-63} 3. Nc3 {+77=170-22} (3. g3 {+34=108-26} d5 {+26=69-16} (3... b6
{+5=29-4})) (3. d4 {+15=35-13} b6 {+12=18-6}) 3... Bb4 {+44=75-14} (3... d5
{+22=71-8})) (2... c5 {+68=177-34} 3. Nc3 {+49=118-22} (3. g3 {+15=55-7} b6
{+6=24-4} (3... d5 {+6=14-0})) 3... Nc6 {+28=43-7} (3... d5 {+4=30-5}) (3... e6
{+11=38-8})) (2... b6 {+49=132-33} 3. g3 {+32=94-29} (3. d4 {+5=16-2} e6
{+5=14-1}) (3. Nc3 {+12=18-1} Bb7 {+11=13-1}) 3... Bb7 {+19=63-11} (3... c5
{+9=26-12})) (2... c6 {+12=34-7} 3. Nc3 {+8=16-4} d5 {+8=16-4}) 3. Nc3
{+67=130-26} (3. g3 {+32=73-9} Bg7 {+31=69-9}) 3... Bg7 {+54=83-21} (3... d5
{+13=46-5})) (1... c5 {+93=197-62} 2. c4 {+66=146-39} (2. g3 {+10=32-11} Nc6
{+4=14-4}) (2. e4 {+12=11-3}) (2. b3 {+5=8-8}) 2... Nc6 {+22=41-20} (2... Nf6
{+27=79-14} 3. Nc3 {+16=55-8} (3. g3 {+10=20-5} b6 {+6=12-3}) 3... e6 {+5=25-4}
(3... Nc6 {+6=16-0})) (2... g6 {+13=23-4} 3. d4 {+8=11-4}) 3. Nc3 {+14=26-10}
(3. d4 {+6=10-5} cxd4 {+6=10-5}) 3... Nf6 {+9=12-3}) (1... e6 {+6=23-7}) (1...
d6 {+17=28-17} 2. d4 {+10=23-13} Bg4 {+7=16-8}) (1... g6 {+46=67-26} 2. d4
{+20=28-10} (2. e4 {+17=19-10} Bg7 {+8=8-9} 3. d4 {+8=8-9} d6 {+8=7-9}) (2. c4
{+8=15-6} Bg7 {+8=12-6}) 2... Bg7 {+14=15-7}) (1... f5 {+12=38-5} 2. g3
{+11=24-2} Nf6 {+11=20-2} 3. Bg2 {+11=19-2}) 2. d4 {+107=262-39} (2. c4
{+30=90-25} e6 {+9=27-6} (2... d4 {+8=16-9}) (2... c6 {+8=36-7} 3. d4 {+5=17-3}
(3. e3 {+3=15-3}) 3... Nf6 {+5=17-3}) 3. g3 {+7=11-3}) (2. g3 {+37=102-23} Nf6
{+8=32-7} (2... Bg4 {+3=14-7} 3. Bg2 {+3=13-7}) (2... c6 {+15=30-6} 3. Bg2
{+14=30-6} Bg4 {+12=24-6}) 3. Bg2 {+8=32-7} c6 {+4=12-4}) 2... Nf6 {+66=206-26}
(2... e6 {+12=19-1} 3. c4 {+11=16-1}) (2... c6 {+15=16-5} 3. c4 {+15=14-5} Nf6
{+9=9-4}) (2... Bf5 {+7=14-3} 3. c4 {+6=13-3} e6 {+6=13-3}) 3. c4 {+65=203-26}
e6 {+33=96-14} (3... dxc4 {+6=55-5}) (3... c6 {+26=52-7})) (1. b3 {+11=16-13}
e5 {+7=7-6} 2. Bb2 {+7=7-6}) (1. g3 {+38=75-36} d5 {+12=39-13} (1... g6
{+16=13-6} 2. Bg2 {+15=12-6} Bg7 {+15=11-6}) (1... e5 {+7=9-7}) 2. Bg2
{+8=23-10} (2. Nf3 {+4=16-3})) 1... e6 {+376=704-213} (1... e5 {+653=1337-361}
2. Bc4 {+16=30-9} (2. Nf3 {+609=1258-336} Nf6 {+88=229-29} (2... Nc6
{+517=1021-306} 3. Bb5 {+396=801-243} (3. Bc4 {+65=103-28} Bc5 {+32=51-15}
(3... Nf6 {+31=47-13})) (3. d4 {+32=62-18} exd4 {+32=62-18}) (3. Nc3
{+22=49-14} Nf6 {+17=48-13}) 3... Nf6 {+47=66-27} (3... a6 {+314=664-194})
(3... Bc5 {+4=11-5}) (3... g6 {+12=31-13}) (3... Nd4 {+5=13-2})) 3. Nxe5
{+40=151-20} (3. Nc3 {+10=21-4} Nc6 {+8=15-3}) (3. d4 {+37=57-5} Nxe4
{+34=43-5}) 3... d6 {+40=151-20}) (2. f4 {+14=14-6} exf4 {+12=11-6}) (2. Nc3
{+12=30-7} Nf6 {+8=24-4}) 2... Nf6 {+13=29-8} 3. d3 {+12=25-8} Nc6 {+3=13-5})
(1... c5 {+1178=2016-741} 2. Nf3 {+1044=1744-638} (2. Nc3 {+76=154-64} e6
{+13=31-11} (2... d6 {+20=45-14} 3. g3 {+8=13-5} (3. f4 {+6=20-4}) 3... Nc6
{+5=12-3}) (2... Nc6 {+43=75-36} 3. g3 {+18=36-16} (3. Nf3 {+6=16-10}) (3. Ne2
{+12=13-2}) (3. f4 {+7=7-6}) 3... g6 {+18=35-15}) 3. Nf3 {+8=16-7}) (2. c3
{+38=88-26} e6 {+7=14-4} (2... d5 {+15=29-8} 3. exd5 {+15=26-7} Qxd5
{+15=26-7}) (2... Nf6 {+11=38-11} 3. e5 {+10=38-10} Nd5 {+10=38-10}) 3. d4
{+5=14-4} d5 {+5=14-4}) 2... e6 {+264=441-130} (2... Nc6 {+229=384-124} 3. d4
{+176=302-88} (3. Bb5 {+41=61-26} g6 {+18=32-9} (3... e6 {+15=15-10})) (3. Nc3
{+8=20-8}) 3... cxd4 {+176=302-88}) (2... d6 {+546=904-379} 3. d4
{+489=761-328} (3. c3 {+11=20-4} Nf6 {+11=20-4}) (3. Bb5+ {+30=103-32} Bd7
{+19=83-14} (3... Nc6 {+6=9-11}) (3... Nd7 {+5=11-7})) (3. Nc3 {+7=14-10}) 3...
cxd4 {+466=736-314} (3... Nf6 {+23=25-14})) 3. d4 {+213=337-108} (3. c3
{+6=28-4} d5 {+2=27-4}) (3. Nc3 {+22=39-12} a6 {+8=13-6} (3... Nc6 {+6=19-5}))
(3. d3 {+14=20-3} Nc6 {+12=16-2}) 3... cxd4 {+213=337-108}) (1... c6
{+250=488-140} 2. d4 {+210=390-114} (2. c4 {+15=43-6} d5 {+11=33-5} 3. exd5
{+6=23-3} cxd5 {+3=20-3}) (2. Nc3 {+10=28-8} d5 {+10=27-8} 3. Nf3 {+8=21-6} Bg4
{+4=17-6}) (2. d3 {+11=23-11} d5 {+8=18-8} 3. Nd2 {+8=18-8}) 2... d5
{+210=388-114} 3. Nd2 {+63=131-34} (3. Nc3 {+44=97-25} dxe4 {+43=95-25}) (3. e5
{+61=85-32} Bf5 {+58=83-31}) (3. exd5 {+40=72-21} cxd5 {+40=72-21}) 3... dxe4
{+62=127-34}) (1... g6 {+55=63-29} 2. d4 {+55=61-29} Bg7 {+48=52-25} 3. Nc3
{+34=26-17} (3. Nf3 {+10=21-5} d6 {+9=21-5}) 3... c6 {+16=11-13} (3... d6
{+18=15-4})) (1... d6 {+119=164-53} 2. d4 {+113=163-50} Nf6 {+90=127-36} (2...
g6 {+23=34-13} 3. Nc3 {+17=20-9} Bg7 {+15=19-8}) 3. Nc3 {+75=112-35} g6
{+66=104-31}) (1... Nf6 {+44=48-22} 2. e5 {+42=43-19} Nfd5 {+42=43-19} 3. d4
{+39=39-18} d6 {+39=39-18}) (1... d5 {+37=21-16} 2. exd5 {+36=21-16} Qxd5
{+34=17-11} 3. Nc3 {+31=16-10} Qa5 {+30=16-10}) (1... Nc6 {+12=12-3}) 2. d3
{+17=36-7} (2. d4 {+356=659-201} d5 {+356=658-201} 3. Nd2 {+109=268-75} (3. Nc3
{+217=326-107} Nf6 {+74=129-40} (3... dxe4 {+17=40-1}) (3... Bb4
{+121=146-60})) (3. exd5 {+8=31-8} exd5 {+8=31-8}) (3. e5 {+22=33-11} c5
{+20=30-10}) 3... c5 {+56=189-45} (3... Nf6 {+19=26-15}) (3... a6 {+11=27-8})
(3... Nc6 {+7=9-4})) 2... d5 {+11=24-4} 3. Nd2 {+9=20-3} Nf6 {+6=14-3}
Another output format is easier to read.
Code: Select all
1. e4 e6 2. d3 d5 3. Nd2 Nf6 {+6=14-3}
2. d4 d5 3. Nd2 c5 {+56=189-45}
3. ... Nf6 {+19=26-15}
3. ... a6 {+11=27-8}
3. ... Nc6 {+7=9-4}
3. Nc3 Nf6 {+74=129-40}
3. ... dxe4 {+17=40-1}
3. ... Bb4 {+121=146-60}
3. exd5 exd5 {+8=31-8}
3. e5 c5 {+20=30-10}
1. ... e5 2. Bc4 Nf6 3. d3 Nc6 {+3=13-5}
2. Nf3 Nf6 3. Nxe5 d6 {+40=151-20}
3. Nc3 Nc6 {+8=15-3}
3. d4 Nxe4 {+34=43-5}
2. ... Nc6 3. Bb5 Nf6 {+47=66-27}
3. ... a6 {+314=664-194}
3. ... Bc5 {+4=11-5}
3. ... g6 {+12=31-13}
3. ... Nd4 {+5=13-2}
3. Bc4 Bc5 {+32=51-15}
3. ... Nf6 {+31=47-13}
3. d4 exd4 {+32=62-18}
3. Nc3 Nf6 {+17=48-13}
2. f4 exf4 {+12=11-6}
2. Nc3 Nf6 {+8=24-4}
1. ... c5 2. Nf3 e6 3. d4 cxd4 {+213=337-108}
3. c3 d5 {+2=27-4}
3. Nc3 a6 {+8=13-6}
3. ... Nc6 {+6=19-5}
3. d3 Nc6 {+12=16-2}
2. ... Nc6 3. d4 cxd4 {+176=302-88}
3. Bb5 g6 {+18=32-9}
3. ... e6 {+15=15-10}
3. Nc3 {+8=20-8}
2. ... d6 3. d4 cxd4 {+466=736-314}
3. ... Nf6 {+23=25-14}
3. c3 Nf6 {+11=20-4}
3. Bb5+ Bd7 {+19=83-14}
3. ... Nc6 {+6=9-11}
3. ... Nd7 {+5=11-7}
3. Nc3 {+7=14-10}
2. Nc3 e6 3. Nf3 {+8=16-7}
2. ... d6 3. g3 Nc6 {+5=12-3}
3. f4 {+6=20-4}
2. ... Nc6 3. g3 g6 {+18=35-15}
3. Nf3 {+6=16-10}
3. Nge2 {+12=13-2}
3. f4 {+7=7-6}
2. c3 e6 3. d4 d5 {+5=14-4}
2. ... d5 3. exd5 Qxd5 {+15=26-7}
2. ... Nf6 3. e5 Nd5 {+10=38-10}
1. ... c6 2. d4 d5 3. Nd2 dxe4 {+62=127-34}
3. Nc3 dxe4 {+43=95-25}
3. e5 Bf5 {+58=83-31}
3. exd5 cxd5 {+40=72-21}
2. c4 d5 3. exd5 cxd5 {+3=20-3}
2. Nc3 d5 3. Nf3 Bg4 {+4=17-6}
2. d3 d5 3. Nd2 {+8=18-8}
1. ... g6 2. d4 Bg7 3. Nc3 c6 {+16=11-13}
3. ... d6 {+18=15-4}
3. Nf3 d6 {+9=21-5}
1. ... d6 2. d4 Nf6 3. Nc3 g6 {+66=104-31}
2. ... g6 3. Nc3 Bg7 {+15=19-8}
1. ... Nf6 2. e5 Nd5 3. d4 d6 {+39=39-18}
1. ... d5 2. exd5 Qxd5 3. Nc3 Qa5 {+30=16-10}
1. ... Nc6 {+12=12-3}
1. d4 Nf6 2. c4 e6 3. Nf3 d5 {+142=357-91}
3. ... b6 {+333=743-177}
3. ... Bb4+ {+84=198-44}
3. ... c5 {+42=52-25}
3. Nc3 Bb4 {+375=721-258}
3. ... d5 {+51=99-22}
3. ... c5 {+14=10-5}
3. g3 c5 {+8=22-10}
3. ... d5 {+28=108-22}
3. ... Bb4+ {+23=36-14}
2. ... g6 3. Nc3 d5 {+171=292-110}
3. ... Bg7 {+274=384-173}
3. g3 c6 {+5=25-3}
3. ... Bg7 {+31=53-14}
3. Nf3 Bg7 {+55=111-27}
2. ... c5 3. d5 b5 {+47=70-37}
3. ... g6 {+17=26-13}
3. ... e6 {+21=24-12}
3. ... e5 {+14=7-5}
3. ... d6 {+9=15-8}
3. Nf3 cxd4 {+13=10-10}
2. ... c6 3. Nc3 d5 {+15=21-5}
2. ... d6 3. Nc3 Nbd7 {+12=21-4}
2. ... e5 3. dxe5 Ng4 {+5=14-2}
2. Nf3 g6 3. Bf4 Bg7 {+4=16-12}
3. c4 Bg7 {+69=136-53}
3. g3 Bg7 {+24=58-11}
3. ... d5 {+4=16-0}
3. Bg5 Bg7 {+10=53-23}
3. c3 Bg7 {+4=14-3}
2. ... e6 3. c4 b6 {+50=156-39}
3. ... Bb4+ {+13=39-11}
3. ... c5 {+17=22-13}
3. ... d5 {+11=36-6}
3. e3 c5 {+3=16-3}
3. ... b6 {+4=14-5}
3. Bg5 h6 {+5=17-6}
3. ... c5 {+11=37-9}
3. g3 b6 {+9=17-8}
3. ... b5 {+10=29-6}
2. ... d5 3. c4 e6 {+24=81-14}
3. ... c6 {+12=19-5}
2. ... c5 3. d5 b5 {+10=9-4}
3. ... g6 {+10=12-3}
2. ... b6 {+4=23-1}
2. ... d6 {+11=12-3}
2. Bg5 Ne4 3. Bf4 {+9=18-7}
2. ... e6 {+11=11-9}
1. ... d6 2. c4 e5 3. Nf3 e4 {+8=16-3}
2. Nf3 Bg4 3. c4 Nd7 {+9=15-3}
2. ... g6 3. c4 Bg7 {+7=10-6}
2. e4 Nf6 3. f3 {+5=10-5}
3. Nc3 g6 {+17=25-12}
2. ... g6 3. Nc3 {+7=12-2}
1. ... d5 2. c4 e6 3. Nc3 Be7 {+52=113-14}
3. ... c5 {+10=28-8}
3. ... c6 {+14=30-9}
3. ... Nf6 {+37=78-18}
3. ... Bb4 {+6=11-4}
3. Nf3 c6 {+5=16-2}
3. ... Nf6 {+29=73-18}
3. ... c5 {+14=13-2}
2. ... dxc4 3. e3 Nf6 {+15=28-11}
3. Nf3 a6 {+16=35-8}
3. ... Nf6 {+25=79-23}
3. e4 Nf6 {+18=36-15}
3. ... c5 {+8=5-8}
3. ... Nc6 {+9=11-4}
3. ... e5 {+16=32-3}
2. ... c6 3. e3 Nf6 {+11=35-7}
3. Nc3 Nf6 {+100=228-73}
3. ... e5 {+8=8-6}
3. Nf3 Nf6 {+118=281-85}
3. cxd5 cxd5 {+8=30-6}
2. Nf3 Nf6 3. c4 c6 {+21=43-14}
3. ... dxc4 {+13=48-3}
3. ... e6 {+4=23-5}
2. ... c6 3. c4 {+7=18-3}
2. ... e6 3. c4 dxc4 {+5=14-2}
2. ... c5 {+4=14-4}
2. Bg5 {+11=17-7}
1. ... e6 2. c4 b6 {+10=16-9}
2. ... Bb4+ 3. Bd2 {+10=20-2}
2. ... Nf6 3. Nf3 b6 {+10=18-4}
3. Nc3 Bb4 {+8=19-7}
2. ... d5 3. Nc3 {+9=8-4}
2. ... f5 3. g3 Nf6 {+22=13-7}
2. Nf3 Nf6 {+7=13-4}
2. ... f5 {+7=11-3}
2. e4 d5 3. Nd2 {+5=15-0}
3. Nc3 {+2=16-6}
1. ... f5 2. Nc3 {+8=11-5}
2. g3 Nf6 3. Bg2 g6 {+19=30-14}
2. c4 Nf6 {+13=12-6}
2. Nf3 Nf6 {+3=20-8}
1. ... g6 2. e4 Bg7 {+9=17-6}
2. c4 Bg7 {+9=12-6}
1. ... c5 2. d5 {+6=10-4}
1. c4 Nf6 2. Nc3 g6 3. g3 Bg7 {+9=15-5}
3. e4 d6 {+16=14-12}
2. ... e5 3. Nf3 Nc6 {+25=51-25}
2. ... c5 3. Nf3 d5 {+11=7-4}
3. ... e6 {+11=25-6}
3. ... Nc6 {+7=10-3}
3. g3 e6 {+10=15-3}
2. ... d5 3. cxd5 Nxd5 {+14=20-4}
2. ... e6 3. Nf3 b6 {+16=27-6}
3. ... d5 {+18=32-6}
3. ... c5 {+7=15-3}
3. e4 {+9=21-3}
3. d4 Bb4 {+8=12-2}
2. Nf3 g6 {+7=17-4}
2. ... c6 {+3=16-1}
2. ... c5 3. Nc3 {+6=11-4}
2. ... e6 3. g3 {+5=20-2}
2. ... b6 3. g3 Bb7 {+2=16-2}
2. g3 {+16=25-7}
2. d4 e6 {+4=15-8}
1. ... c6 2. e4 d5 3. exd5 cxd5 {+5=19-6}
2. Nf3 d5 {+6=17-2}
2. d4 d5 3. Nf3 Nf6 {+7=13-2}
3. Nc3 {+7=12-4}
1. ... e5 2. g3 Nf6 3. Bg2 d5 {+7=12-7}
2. ... Nc6 3. Bg2 g6 {+7=18-8}
2. Nc3 Nc6 3. g3 g6 {+15=55-12}
3. Nf3 Nf6 {+5=20-9}
2. ... Bb4 3. Nd5 Be7 {+10=6-5}
2. ... d6 3. Nf3 {+9=11-4}
3. g3 {+12=13-2}
2. ... Nf6 3. Nf3 Nc6 {+46=119-37}
3. g3 Bb4 {+4=16-4}
3. ... d5 {+10=5-5}
1. ... c5 2. Nf3 Nf6 3. g3 {+3=17-5}
3. Nc3 Nc6 {+19=41-5}
3. ... e6 {+19=41-9}
3. ... d5 {+9=19-4}
2. ... Nc6 3. d4 cxd4 {+7=16-4}
3. Nc3 Nf6 {+6=13-2}
2. ... g6 {+13=13-3}
2. g3 g6 3. Bg2 Bg7 {+11=31-6}
2. Nc3 g6 {+2=16-5}
2. ... Nc6 {+4=14-3}
1. ... e6 2. Nf3 d5 3. d4 Nf6 {+7=15-3}
2. ... Nf6 3. Nc3 {+4=12-4}
3. g3 {+3=17-3}
2. g3 d5 3. Bg2 Nf6 {+10=22-6}
2. Nc3 d5 3. d4 Be7 {+20=38-11}
3. ... Nf6 {+24=45-11}
2. d4 d5 3. Nc3 {+7=13-3}
1. ... g6 2. d4 Bg7 3. Nc3 {+5=11-4}
2. ... Nf6 {+13=11-2}
2. Nc3 Bg7 3. g3 {+3=23-11}
2. e4 Bg7 3. d4 d6 {+7=16-7}
1. ... f5 {+12=16-2}
1. ... b6 {+12=13-4}
1. Nf3 d5 2. d4 Nf6 3. c4 e6 {+33=96-14}
3. ... dxc4 {+6=55-5}
3. ... c6 {+26=52-7}
2. ... e6 3. c4 {+11=16-1}
2. ... c6 3. c4 Nf6 {+9=9-4}
2. ... Bf5 3. c4 e6 {+6=13-3}
2. c4 e6 3. g3 {+7=11-3}
2. ... d4 {+8=16-9}
2. ... c6 3. d4 Nf6 {+5=17-3}
3. e3 {+3=15-3}
2. g3 Nf6 3. Bg2 c6 {+4=12-4}
2. ... Bg4 3. Bg2 {+3=13-7}
2. ... c6 3. Bg2 Bg4 {+12=24-6}
1. ... Nf6 2. c4 g6 3. Nc3 Bg7 {+54=83-21}
3. ... d5 {+13=46-5}
3. g3 Bg7 {+31=69-9}
2. ... e6 3. Nc3 Bb4 {+44=75-14}
3. ... d5 {+22=71-8}
3. g3 d5 {+26=69-16}
3. ... b6 {+5=29-4}
3. d4 b6 {+12=18-6}
2. ... c5 3. Nc3 Nc6 {+28=43-7}
3. ... d5 {+4=30-5}
3. ... e6 {+11=38-8}
3. g3 b6 {+6=24-4}
3. ... d5 {+6=14-0}
2. ... b6 3. g3 Bb7 {+19=63-11}
3. ... c5 {+9=26-12}
3. d4 e6 {+5=14-1}
3. Nc3 Bb7 {+11=13-1}
2. ... c6 3. Nc3 d5 {+8=16-4}
2. d4 g6 {+8=31-4}
2. ... e6 3. c4 {+7=13-5}
2. ... d5 {+3=17-2}
2. g3 b6 3. Bg2 Bb7 {+2=15-6}
2. ... d5 3. Bg2 c6 {+12=31-13}
2. ... g6 3. Bg2 Bg7 {+13=28-9}
3. b3 Bg7 {+5=14-2}
1. ... c5 2. c4 Nc6 3. Nc3 Nf6 {+9=12-3}
3. d4 cxd4 {+6=10-5}
2. ... Nf6 3. Nc3 e6 {+5=25-4}
3. ... Nc6 {+6=16-0}
3. g3 b6 {+6=12-3}
2. ... g6 3. d4 {+8=11-4}
2. g3 Nc6 {+4=14-4}
2. e4 {+12=11-3}
2. b3 {+5=8-8}
1. ... e6 {+6=23-7}
1. ... d6 2. d4 Bg4 {+7=16-8}
1. ... g6 2. d4 Bg7 {+14=15-7}
2. e4 Bg7 3. d4 d6 {+8=7-9}
2. c4 Bg7 {+8=12-6}
1. ... f5 2. g3 Nf6 3. Bg2 {+11=19-2}
1. b3 e5 2. Bb2 {+7=7-6}
1. g3 d5 2. Bg2 {+8=23-10}
2. Nf3 {+4=16-3}
1. ... g6 2. Bg2 Bg7 {+15=11-6}
1. ... e5 {+7=9-7}
Harald