English Closed System- which chess engine best for analysis

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
Eelco de Groot
Posts: 4669
Joined: Sun Mar 12, 2006 2:40 am
Full name:   Eelco de Groot

Re: English Closed System- which chess engine best for analy

Post by Eelco de Groot »

23 26:23 281.594.897 182.160 +0.11 b2b4 a5xb4 a3xb4 c7c6 b4b5 Bc8e6 Bc1b2 d6d5 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Nf6e8 Nd2f3 d5d4 Qd1c1 Ra8c8 Qc1d2 Ne8c7 Bb2a3 Nc7d5 Rf1c1 Rc8xc1+ Qd2xc1 Qd8d7 Ba3d6

I'm not really convinced yet that Rybka understands this. I don't understand nothing about this opening anyway but are you guys sure that White can play something like 3. b4-b5 what Rybka shows? Isn't 1.b4 meant to counter a possible c7-c5 or c6-c5, what is that pawn doing so far North? I just don't understand these English upside down Sicilians... :P


Is there maybe some stem game or example game for this opening or position? I could maybe look it up in the ChessBase database but the computer was a bit tied up with other chessprograms.

I tried to reconstruct the opening then but I ended up in a position where Black has the move... :)

1. c4 e5 2. Nc3 Nf6 3. Nf3 Nc6 4. g3 g6 5. Bg2 Bg7 6. O-O
d6 7. d3 O-O 8. Rb1 a5 9. a3 Ne7 10. Nd2 *


This morning during breakfast ahem, well it took a bit longer than that - I tried to teach Ancalagon a little bit about weak squares and now my Stockfish clone starts to play Hypermodern things like b3 and Bb2 :) No 1.b4 but this is not fatal either I think, for White? The first plies are still with lots and lots of movechanges but that is normal in this version, it should not influence deeper plies. Unfortunately Ancalagon did not quite persevere with the Hypermodern b3! but that is because it eventually found the good reply 1...Nh7! followed by 2...f5! all recommended by Miguel Ballicora earlier. The eval sinks a bit because of the good replies and now the main move is back to Re1 and now Nf3 by a very small margin, that could be down to tuning the new Weak Squares (Middle Game) and Weak Squares (Endgame) that both just got an internal value of 0x100 which maybe is a bit too much for a supposedly new term in the evaluation. Well, maybe it was there already, I did not really look everywhere in Glaurung's code if the weak square evaluations already existed.

r1bq1rk1/1pp1npb1/3p1npp/p3p3/2P5/P1NP2P1/1P1NPPBP/1RBQ1RK1 w - -

Engine: Ancalagon 1.3 Space 110 Weak Squares 100 Build 19 (Athlon 2009 MHz, 256 MB)
by T. Romstad, M.Costalba, E. de Groot

2.00 0:00 0.00 1.Nde4 Nc6 (156) 0

2.00 0:00 0.00 1.Nb3 (313) 1

3.00 0:00 -0.43 1.Nb3 a4 2.Nd2 (1.904) 7

3.00 0:00 -0.42 1.Nde4 (2.143) 8

3.00 0:00 -0.42 1.Qb3 (2.773) 11

3.00 0:00 -0.41 1.h3 (3.124) 12

3.00 0:00 -0.41 1.Qc2 (3.411) 13

3.00 0:00 -0.40 1.Ra1 (3.995) 15

3.00 0:00 -0.40 1.Bf3 (4.333) 17

3.00 0:00 -0.39 1.f4 (4.752) 19

3.00 0:00 -0.39 1.Re1 (5.076) 20

3.00 0:00 -0.38 1.e4 (5.396) 21

3.00 0:00 -0.38 1.b3 (5.689) 21

3.00 0:00 -0.37 1.Nf3 (6.005) 22

3.00 0:00 -0.37 1.b4 (6.484) 24

3.00 0:00 -0.36 1.Nb5 (7.783) 29

4.00 0:00 -0.70 1.Nb5 c6 2.Nc3 d5 (9.315) 33

4.00 0:00 -0.70 1.b4 (9.966) 35

4.00 0:00 -0.69 1.Nf3 (10.419) 37

4.00 0:00 -0.69 1.b3 (11.531) 41

4.00 0:00 -0.68 1.e4 (11.867) 42

4.00 0:00 -0.68 1.Re1 (12.377) 44

4.00 0:00 -0.67 1.f4 (13.147) 46

4.00 0:00 -0.67 1.Bf3 (13.861) 49

4.00 0:00 -0.66 1.Ra1 (15.214) 51

4.00 0:00 -0.66 1.Qc2 (15.577) 52

4.00 0:00 -0.65 1.h3 (16.422) 55

4.00 0:00 -0.65 1.Qb3 (16.990) 57

4.00 0:00 -0.64 1.Nde4 (17.464) 58

4.00 0:00 -0.64 1.Nb3 (17.839) 60

4.00 0:00 -0.63 1.Qe1 (18.237) 58

4.00 0:00 -0.63 1.Qa4 (19.018) 60

4.00 0:00 -0.62 1.e3 (19.445) 62

4.00 0:00 -0.62 1.Nce4 (20.394) 65

4.00 0:00 -0.61 1.a4 (20.703) 66

4.00 0:00 -0.61 1.Bh1 (21.066) 67

4.00 0:00 -0.60 1.Na4 (21.510) 68

4.00 0:00 -0.60 1.h4 (21.961) 70

4.00 0:00 -0.59 1.f3 (22.981) 70

5.00 0:00 -0.27 1.f3 Bd7 2.Nde4 Nxe4 3.fxe4 Nc6 (25.588) 78

5.00 0:00 -0.26 1.Nce4 (28.920) 84

5.00 0:00 -0.26 1.e3 (30.157) 87

5.00 0:00 -0.25 1.Nb3 (36.585) 101

5.00 0:00 -0.25 1.Nde4 (38.247) 106

5.00 0:00 -0.25 1.Qb3 (40.175) 111

5.00 0:00 -0.24 1.h3 (41.580) 115

5.00 0:00 -0.24 1.Qc2 (42.877) 114

5.00 0:00 -0.23 1.e4 (48.475) 129

5.00 0:00 -0.23 1.b3 (49.832) 127

5.00 0:00 -0.22 1.Nf3 (53.525) 137

6.00 0:00 -0.03 1.Nf3 Bg4 2.e4 Nc6 3.Be3 b6 (60.498) 149

6.00 0:00 -0.03 1.b3 (64.665) 159

6.00 0:00 -0.02 1.Qb3 (71.272) 168

6.00 0:00 -0.02 1.Nde4 (76.174) 174

7.00 0:00 0.00 1.Nde4 Nxe4 2.Nxe4 Nc6 3.Be3 Bf5
4.Nc3 Re8 (97.075) 206

8.00 0:00 +0.01 1.Nde4 Nxe4 2.Nxe4 Nc6 3.Bd2 Bg4
4.f3 Bd7 5.g4 (153.519) 265

8.00 0:00 +0.02 1.Qb3 (194.916) 297

9.00 0:00 +0.01 1.Qb3 Nc6 2.Nf3 Rb8 3.e4 Bd7 4.Be3 Ng4
5.Bd2 (294.055) 348

10.01 0:01 +0.01 1.Qb3 Nc6 2.Nf3 Nd4 3.Nxd4 exd4
4.Ne4 a4 5.Qc2 Nxe4 6.Bxe4 Re8 (496.484) 402

10.02 0:01 +0.02 1.Nde4 (583.022) 414

10.04 0:02 +0.02 1.Nf3 (1.000.228) 444

11.01 0:03 +0.07 1.Nf3 Nc6 2.e4 Bd7 3.Bd2 Bg4 4.h3 Bxf3
5.Bxf3 Nd4 6.b3 (1.539.728) 460

12.01 0:05 +0.07 1.Nf3 Nc6 2.e4 Bg4 3.Be3 Bd7 4.Qb3 b6
5.Bd2 Re8 6.h3 Be6 (2.502.484) 479

12.03 0:07 +0.08 1.Re1 (3.882.213) 487

12.12 0:11 +0.08 1.e4 (5.667.980) 492

13.01 0:12 +0.07 1.e4 Nc6 2.Nf3 Be6 3.b3 Re8 4.Be3 Ng4
5.Bd2 f5 6.Nd5 Nf6 7.exf5 Bxf5 (6.302.383) 493

13.03 0:16 +0.08 1.Nf3 (7.992.298) 495

14.01 0:31 +0.09 1.Nf3 Be6 2.Bd2 Nc6 3.b3 Nd7 4.h4 Nc5
5.Qc1 Kh7 6.b4 axb4 7.axb4 Na4 (15.230.584) 481

15.01 0:53 +0.07 1.Nf3 Be6 2.Bd2 Nc6 3.b3 Re8 4.Qc1 g5
5.e4 b6 6.Rb2 Bd7 7.h3 Be6 8.Qa1 (25.228.387) 475

15.07 1:46 +0.08 1.b3 (50.069.006) 468

16.01 2:53 +0.15 1.b3 Nc6 2.Bb2 Be6 3.e3 Re8 4.Re1 Nd7
5.Nf3 Nf6 6.e4 Bg4 7.Nb5 Qc8 8.h3 Bxh3
9.Bxh3 Qxh3 10.Nxc7 (80.507.286) 463

17.01 5:03 +0.17 1.b3 Nc6 2.Bb2 Be6 3.e3 Re8 4.Re1 Nd7
5.Qc2 Nc5 6.Nde4 Nxe4 7.dxe4 Qd7
8.f3 Bh3 9.Nd5 Bxg2 10.Kxg2 (137.826.500) 454

18.01 9:35 +0.19 1.b3 Nc6 2.Bb2 Be6 3.e3 Re8 4.Nd5 Bf5
5.Nxf6+ Qxf6 6.Ne4 Qe6 7.Re1 Bh3
8.Bxh3 Qxh3 9.Nc3 Rac8 10.Nd5 Qf5 (258.163.267) 448

19.01 21:47 +0.07 1.b3 Nh7 2.Nf3 f5 {Double Fianchetto by White and Black counters it by retracting an advance Knight and to make room for even more pawns in the center, while disregarding the weakening of the King Position, advancing the pawn on f7} 3.Bb2 Nf6 4.Qc2 Be6
5.Rbd1 g5 6.e3 c6 7.Nd2 Qc7 8.f4 b6
9.fxe5 dxe5 10.d4 (580.593.447) 444

19.02 32:18 +0.08 1.Re1 (855.431.698) 441

19.03 48:19 +0.08 1.Nf3 (1.268.941.598) 437

Eelco
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: English Closed System- which chess engine best for analy

Post by mcostalba »

Eelco de Groot wrote:I did not really look everywhere in Glaurung's code if the weak square evaluations already existed.
Weak squares: "Weak squares are squares which cannot be defended by a pawn"

Look in mobility calculation (in Stockfish not in Glaurung)....there is something that _indirectly_ accounts for that...although it is difficult to say if it is enough.
Terry McCracken
Posts: 16465
Joined: Wed Aug 01, 2007 4:16 am
Location: Canada

Re: English Closed System- which chess engine best for analy

Post by Terry McCracken »

Eelco de Groot wrote:
23 26:23 281.594.897 182.160 +0.11 b2b4 a5xb4 a3xb4 c7c6 b4b5 Bc8e6 Bc1b2 d6d5 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Nf6e8 Nd2f3 d5d4 Qd1c1 Ra8c8 Qc1d2 Ne8c7 Bb2a3 Nc7d5 Rf1c1 Rc8xc1+ Qd2xc1 Qd8d7 Ba3d6

I'm not really convinced yet that Rybka understands this. I don't understand nothing about this opening anyway but are you guys sure that White can play something like 3. b4-b5 what Rybka shows? Isn't 1.b4 meant to counter a possible c7-c5 or c6-c5, what is that pawn doing so far North? I just don't understand these English upside down Sicilians... :P


Is there maybe some stem game or example game for this opening or position? I could maybe look it up in the ChessBase database but the computer was a bit tied up with other chessprograms.
The idea is to march the pawns on the Q-Side so yes b5 is part of White's plan.

This opening is in the Shredder 8 opening book.

Black will need to play c6 shortly.
Terry McCracken
User avatar
Eelco de Groot
Posts: 4669
Joined: Sun Mar 12, 2006 2:40 am
Full name:   Eelco de Groot

Re: English Closed System- which chess engine best for analy

Post by Eelco de Groot »

mcostalba wrote:
Eelco de Groot wrote:I did not really look everywhere in Glaurung's code if the weak square evaluations already existed.
Weak squares: "Weak squares are squares which cannot be defended by a pawn"

Look in mobility calculation (in Stockfish not in Glaurung)....there is something that _indirectly_ accounts for that...although it is difficult to say if it is enough.
Thanks Marco!

I found the following function

Code: Select all

inline bool Position::square_is_weak(Square s, Color c) const {
  return !(pawns(c) & outpost_mask(opposite_color(c), s));
}
and now I remember having seen it before! It is also in the original Glaurung I believe?
The code I made does roughly the same but with a small difference that being defended by a piece can make up for not having a real pawn defending the square. So it calculates a slightly different thing, luckily :) The calculation is not so cheap, I think I can see a slowdown, it is not always easy to see on my computer because it has a variable clockrate depending on utilization and temperature, it's called Dynamic Overclocking Technology, so I have to trust on listening to the soundvolume to guess if the CPU is running 100%.

This is my function to calculate weak squares:

Code: Select all


  void evaluate_weak_squares(const Position &pos, Color us, EvalInfo &ei) {

    Color them = opposite_color(us);

    Bitboard weakSquares = pos.pawns(us);
    if (us == WHITE)
    {
        weakSquares = weakSquares << 8;  
    }
    else
    {
        weakSquares = weakSquares >> 8;
	}
	weakSquares = weakSquares & ~(ei.attacked_by(us, PAWN) & (ei.attacked_by(us) & ~ei.attacked_by(them, PAWN)));

    int weaksquarecount =  count_1s_max_15(weakSquares);

	ei.mgValue -= Sign[us] * apply_weight(Value(weaksquarecount), WeightWeakSquaresMidgame);
	ei.egValue -= Sign[us] * apply_weight(Value(weaksquarecount), WeightWeakSquaresEndgame);
  }

I could use Tord's code for "evaluate_space()" as an example and everything was already there! I mean everybody could have made it without doing any real programming. Some people will hate that I suppose. But it is also wonderful!

Thanks Tord!

Eelco
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
User avatar
Eelco de Groot
Posts: 4669
Joined: Sun Mar 12, 2006 2:40 am
Full name:   Eelco de Groot

Re: English Closed System- which chess engine best for analy

Post by Eelco de Groot »

Terry McCracken wrote:
Eelco de Groot wrote:
23 26:23 281.594.897 182.160 +0.11 b2b4 a5xb4 a3xb4 c7c6 b4b5 Bc8e6 Bc1b2 d6d5 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Nf6e8 Nd2f3 d5d4 Qd1c1 Ra8c8 Qc1d2 Ne8c7 Bb2a3 Nc7d5 Rf1c1 Rc8xc1+ Qd2xc1 Qd8d7 Ba3d6

I'm not really convinced yet that Rybka understands this. I don't understand nothing about this opening anyway but are you guys sure that White can play something like 3. b4-b5 what Rybka shows? Isn't 1.b4 meant to counter a possible c7-c5 or c6-c5, what is that pawn doing so far North? I just don't understand these English upside down Sicilians... :P


Is there maybe some stem game or example game for this opening or position? I could maybe look it up in the ChessBase database but the computer was a bit tied up with other chessprograms.
The idea is to march the pawns on the Q-Side so yes b5 is part of White's plan.

This opening is in the Shredder 8 opening book.

Black will need to play c6 shortly.
Thanks Terry!

My Shredder 11.bkt book stops after right after axb4 axb4 so that does not give me much of a clue, also not about the preceding moves... But if the plan is mainly to advance the pawns on the queenside as you say, I think that Rybka can profit from the fact that she usually is pretty agressive in pushing pawns, which is not really standard procedure in closed openings? So I'm still not convinced that Rybka realy understands the English Reversed Sicilian all that well. I dont' have Rybka 3 so can not really complain or judge it very well!

Eelco
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: English Closed System- which chess engine best for analy

Post by mcostalba »

Eelco de Groot wrote:
mcostalba wrote:
Eelco de Groot wrote:I did not really look everywhere in Glaurung's code if the weak square evaluations already existed.
Weak squares: "Weak squares are squares which cannot be defended by a pawn"

Look in mobility calculation (in Stockfish not in Glaurung)....there is something that _indirectly_ accounts for that...although it is difficult to say if it is enough.
Thanks Marco!

I found the following function

Code: Select all

inline bool Position::square_is_weak(Square s, Color c) const {
  return !(pawns(c) & outpost_mask(opposite_color(c), s));
}
and now I remember having seen it before! It is also in the original Glaurung I believe?
yes this function is also in Glaurung, what I was referring is that in the mobility calculation of Stockfish, the number of squares reachable by a piece is reduced by the squares controlled by enemy pawns. So that a postion with few weak squares will have a better mobility count so a better evaluation with one with more weak sqaures. This is why it is an _indirect_ way of weigthing weak sqaures.
Dann Corbit
Posts: 12792
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: English Closed System- which chess engine best for analy

Post by Dann Corbit »

LaurenceChen wrote:[d] r1bq1rk1/1pp1npb1/3p1npp/p3p3/2P5/P1NP2P1/1P1NPPBP/1RBQ1RK1 w - - 0 11
In this English closed position... the book move is b4. Are there any chess engines able to understand how to play maneuvering chess in closed position such as above?
Longer Rybka analysis:

Code: Select all

2) b4;                  
    Searching move: b2-b4
    Best move (Rybka 3): b2-b4
    identical moves! Found in: 04:22
      2	00:00	         386	395.264	+0.15	Qd1b3
      2	00:00	         489	500.736	+0.24	Qd1c2
      3	00:00	         629	644.096	+0.24	Qd1c2
      4	00:00	       1.338	80.594	+0.10	Qd1c2
      4	00:00	       2.536	152.756	+0.15	Nd2e4
      5	00:00	       3.307	105.824	+0.12	Nd2e4 Nf6xe4
      5	00:00	       4.290	137.280	+0.17	Nd2f3 c7c6
      6	00:00	       4.605	147.360	+0.06	Nd2f3 c7c6 Qd1b3
      6	00:00	       6.126	130.688	+0.14	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2
      7	00:00	      10.057	130.359	+0.09	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 Qd8e7
      8	00:00	      14.069	151.649	+0.09	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 Qd8e7 Bd2c3
      9	00:00	      24.578	145.479	+0.14	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 Qd8e7 e2e3 Bc8d7
     10	00:00	      37.996	155.011	+0.12	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 Qd8e7 e2e3 Bc8d7 Bd2c3
     11	00:00	      64.227	150.156	+0.13	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 Qd8e7 e2e3 Bc8d7 Bd2c3 a5a4
     12	00:01	     140.147	155.820	+0.11	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 c7c6 Rf1e1 Bc8e6 Qd1a4 Qd8e7 Rb1c1
     13	00:01	     260.957	161.462	+0.09	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 c7c6 e2e3 b7b6 Qd1e2 Qd8e7
     14	00:04	     619.012	164.470	+0.10	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 c7c6 e2e3 b7b6 Ne4c3 Qd8c7 Nc3b5 Qc7d7
     15	00:06	     955.824	164.222	+0.10	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 c7c6 e2e3 b7b6 Ne4c3 Bc8d7 Rb1c1 Qd8e7 h2h4
     16	00:12	   1.988.368	159.743	+0.08	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 c7c6 e2e3 Bc8e6 b2b4 a5xb4 Bd2xb4 Qd8d7 Qd1d2 Rf8d8 Qd2b2 Ra8a7
     17	00:45	   6.659.263	152.514	+0.06	Nd2e4 Nf6xe4 Nc3xe4 Ne7f5 Bc1d2 c7c6 e2e3 Bc8e6 b2b4 a5xb4 Bd2xb4 Qd8d7 Qd1d2 Rf8d8 Bb4a5 Rd8f8 Qd2b4
     17	01:06	   9.477.842	147.074	+0.07	Nd2f3 Ne7f5 Qd1c2 Bc8e6 e2e4 Nf5d4 Nf3xd4 e5xd4 Nc3d5 a5a4 Nd5xf6+ Qd8xf6 f2f4 Be6d7 f4f5 Qf6e7
     18	04:18	  35.099.708	139.027	+0.09	Nd2f3 Rf8e8 Bc1d2 Ne7f5 e2e3 c7c6 Qd1c1 Kg8h7 Qc1c2 Qd8c7 h2h3 Bc8e6 e3e4 Nf5d4 Nf3xd4
     18	04:22	  35.896.893	139.921	+0.13	b2b4 a5xb4 a3xb4 c7c6 b4b5 d6d5 Bc1b2 Bc8g4 Rf1e1 Qd8d7 Qd1b3 Rf8e8 c4xd5 c6xd5 Nc3a4 Qd7c7 Rb1a1 Bg4e6 Re1c1
     19	04:59	  40.521.789	138.534	+0.12	b2b4 a5xb4 a3xb4 c7c6 b4b5 d6d5 Bc1b2 Bc8g4 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Ne7c6 h2h3 Bg4e6 Bb2a3 Rf8e8 Nd2b3 e5e4 Qd1c2 Nc6e5 Nb3c5
     20	06:38	  54.459.221	140.411	+0.12	b2b4 a5xb4 a3xb4 c7c6 b4b5 d6d5 Bc1b2 Bc8g4 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Ne7c6 h2h3 Bg4e6 Bb2a3 Rf8e8 Nd2b3 e5e4 Qd1c2 Nc6e5 Nb3c5
     21	15:24	 128.702.841	142.608	+0.17	b2b4 a5xb4 a3xb4 c7c6 b4b5 d6d5 Bc1b2 Bc8g4 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Ne7c6 h2h3 Bg4d7 Bb2a3 Rf8e8 Qd1b3 Nc6d4 Nb5xd4 e5xd4 Nd2f3 Re8xe2
     22	24:31	 205.975.385	143.363	+0.15	b2b4 a5xb4 a3xb4 c7c6 Bc1b2 Bc8e6 b4b5 Qd8d7 Rb1a1 Rf8b8 Qd1c2 Be6h3 Nd2e4 Bh3xg2 Kg1xg2 Nf6xe4 d3xe4 Ne7c8 Qc2b3 h6h5 h2h4 Qd7c7 Bb2a3
     23	39:32	 344.997.187	148.924	+0.11	b2b4 a5xb4 a3xb4 c7c6 Bc1b2 Bc8e6 b4b5 d6d5 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Nf6e8 Nd2f3 d5d4 Nf3d2 Ne7d5 Nd2c4 Ne8c7 Nb5d6 Qd8d7 Qd1c2 Rf8b8 Qc2d2 Nc7b5
     24	1:26:48	 743.361.982	146.156	+0.14	b2b4 a5xb4 a3xb4 c7c6 Bc1b2 Bc8e6 b4b5 d6d5 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Nf6e8 Nd2f3 d5d4 Nf3d2 Ne7d5 Nd2c4 Ne8c7 Nb5d6 Qd8d7 Qd1c2 Rf8b8 Rf1c1 Nc7b5 Nd6xb5
     25	2:14:38	1.114.554.380	141.285	+0.15	b2b4 a5xb4 a3xb4 c7c6 Bc1b2 Bc8e6 b4b5 d6d5 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Nf6e8 Nd2f3 d5d4 Nf3d2 Be6d5 Bg2xd5 Ne7xd5 Qd1b3 Ra8b8 Qb3a4 Rb8a8 Qa4c2
     26	3:49:12	1.917.646.805	142.794	+0.15	b2b4 a5xb4 a3xb4 c7c6 Bc1b2 Bc8e6 b4b5 d6d5 b5xc6 b7xc6 c4xd5 c6xd5 Nc3b5 Nf6e8 Nd2f3 d5d4 Nf3d2 Be6d5 Bg2xd5 Ne7xd5 Bb2a3 Nd5c3 Nb5xc3 Ra8xa3 Nc3e4 Qd8e7 Nd2c4 Ra3a2 e2e3 Ne8c7 e3xd4
   5/9/2009 8:05:49 PM, Time for this analysis: 10:00:00, Rated time: 10:04:22
User avatar
Eelco de Groot
Posts: 4669
Joined: Sun Mar 12, 2006 2:40 am
Full name:   Eelco de Groot

Re: English Closed System- which chess engine best for analy

Post by Eelco de Groot »

Thanks to Dann we now have some comparison analysis material from Rybka, on decent hardware in Laurence's Closed English position, I don't have Rybka 3 myself so this is much appreciated!

Second try at the position, but now a bit deeper along Rybka's main line to see if that makes a difference:

It seems to be not so easy for Ancalagon and some other chessprograms to learn that this line by Rybka can lead to real equality for White let alone some opening advantage. I only tried two other programs and gave them the position six moves, twelve half-moves into the last PV from Rybka 3 given by Dann. Not that the programs should see any big plus scores here, it is just a positional matter, but if you want to teach them to play b4 six moves earlier...

After

[FEN "r1bq1rk1/1pp1npb1/3p1npp/p3p3/2P5/P1NP2P1/1P1NPPBP/1RBQ1RK1 w - -"]

1. b4 axb4 2. axb4 c6 3. Bb2 Be6 4. b5 d5 5. bxc6 bxc6 6. cxd5 cxd5 *


HIARCS 11.2, just as an example, I have not tried many programs, this deep in the PV, still has a negative eval for White after twenty ply. I have not tried HIARCS 12 in Chessbase, maybe it would evaluate it a bit different.
HIARCS was running with 50% CPU in the background.

[d]r2q1rk1/4npb1/4bnpp/3pp3/8/2NP2P1/1B1NPPBP/1R1Q1RK1 w - -

Engine: HIARCS 11.2 SP (Athlon 2009 MHz (at 50%),128 MB)
by Mark John Uniacke

8/20 0:00 -0.28 7.Nb5 Nh5 8.Ba3 Re8 9.Bd6 Qb6 10.Qb3 d4 (87.288) 143

9/20 0:01 -0.25 7.Nb5 Nh5 8.Ba3 Re8 9.Nf3 Bd7 10.d4 Bf5
11.Rc1 (207.486) 138

10/23 0:03 -0.24 7.Nb5 Nh5 8.Qb3 Rb8 9.Ba3 Bf6 10.Qc3 Qd7
11.Nd6 d4 (506.137) 137

11/25 0:10 -0.28 7.Nb5 Ng4 8.h3 Bd7 9.Bc3 Rb8 10.hxg4 Rxb5
11.Rxb5 Bxb5 12.Nf3 Qc7 13.Qb3 (1.398.959) 136

12/29 0:22 -0.20 7.Nb5 Ng4 8.Ba3 Qd7 9.e4 (3.026.899) 133

13/30 0:43 -0.27 7.Nb5 Ng4 8.Ba3 Re8 9.h3 Nf6 10.Bd6 Nc6
11.g4 Ra2 12.Nc4 Nd4 13.Nxe5 Nxe2+ (5.759.000) 132

14/34 1:50 -0.21 7.Nb5 Nh5 8.Nf3 f6 9.Ba3 Qd7 10.Nh4 Kh7
11.Qb3 d4 12.Qb4 Nd5 13.Qc5 Rfc8 (14.400.200) 130

15/36 4:24 -0.17 7.Nb5 Ng4 8.Ba3 Re8 9.h3 Nf6 10.Qb3 (34.150.753) 128

16/42 15:25 -0.22 7.Nb5 Nh5 8.Ba3 Re8 9.Qb3 Qa5
10.Rfd1 Nc6 11.Bd6 Rec8 12.Nf3 Qb6
13.Nc7 Qxb3 (117.418.098) 126

17/43 23:30 -0.24 7.Nb5 Nh5 8.Ba3 Re8 9.Qc1 Rc8 10.Qe1 Qa5
11.Nf3 Qa6 12.Bd6 e4 (178.423.021) 126

18/45 50:37 -0.21 7.Nb5 Nh5 8.Nf3 d4 (381.432.262) 125

19/49 95:05 -0.21 7.Nb5 Nh5 8.Nf3 d4 9.Ba3 Qd7 10.Nd2 Ra5
11.Nc4 Rxb5 12.Rxb5 Qxb5 13.Bxe7 Rb8
14.Qc2 Qd7 (720.815.975) 126

20/49 205:50 -0.26 7.Nb5 Nh5 8.Nf3 d4 9.Na3 Rb8 10.Qd2 Nc6
11.Rfe1 Re8 (1.620.810.461) 131

I also tried Chesstiger 2007 for a change, it is a real pity that Christophe retired and that Lokasoft will probably see no more new Chesstigers :(

Chesstiger finds a positive eval! It had about half of the time for the analysis but this was compensated by having 100 % of the CPU

r2q1rk1/4npb1/4bnpp/3pp3/8/2NP2P1/1B1NPPBP/1R1Q1RK1 w - -

Engine: Chess Tiger 2007.1 (128 MB)
by Copyright (C) 1994-2007 by Christophe Théron

10.00 0:00 +0.60 7.Nb5 Nh5 8.Ba3 Qd7 9.Qb3 Rab8
10.Bxe7 Qxe7 11.Bxd5 Bh3 12.Rfc1 (403.050) 822

11.01 0:00 +0.54 7.Nb5 Nh5 8.Ba3 Bf6 9.Qb3 Qa5
10.Rfd1 Rfb8 11.Bd6 d4 12.Nc4 (705.317) 829

12.01 0:01 +0.48 7.Nb5 Nh5 8.Ba3 Bf6 9.Qc1 Rc8 10.Qe1 Rc2
11.Nd6 Qa5 12.Bb4 Qb6 13.Nf3 (1.303.910) 830

13.01 0:02 +0.48 7.Nb5 Nh5 8.Ba3 Bf6 9.Qc1 Rc8 10.Qe1 Rc2
11.Nd6 Qa5 12.Bb4 Qb6 13.Nf3 (2.015.451) 826

14.01 0:05 +0.48 7.Nb5 Nh5 8.Ba3 Qd7 9.Nb3 Qxb5
10.Bxe7 Rfb8 11.Bd6 Rb6 12.Nc5 Qxb1
13.Qxb1 Rxb1 14.Rxb1 (4.542.050) 827

15.01 0:08 +0.48 7.Nb5 Nh5 8.Ba3 Qd7 9.Nb3 Qxb5
10.Bxe7 Rfb8 11.Bd6 Rb6 12.Nc5 Qxb1
13.Qxb1 Rxb1 14.Rxb1 (6.572.027) 818

16.01 0:16 +0.56 7.Nb5 Nh5 8.Ba3 Qd7 9.Nb3 Qxb5
10.Bxe7 Rfe8 11.Nd4 Qd7 12.Nxe6 Rxe7
13.Nxg7 Kxg7 14.Rb6 (13.745.990) 809

17.01 0:27 +0.34 7.Nb5 Nh5 8.Ba3 Qd7 9.Nb3 Qxb5
10.Bxe7 Rfe8 11.Nd4 Qd7 12.Nxe6 Rxe7
13.Nxg7 Kxg7 14.Rb6 Re6 15.Bh3 (22.596.120) 809

18.01 1:29 +0.46 7.Nb5 Nh5 8.Nf3 d4 9.Ba3 Qd7 10.Nd2 Ra5
11.Ne4 Bd5 12.Qd2 Rxb5 13.Rxb5 Qxb5
14.Bxe7 Rb8 (72.759.034) 815

19.01 2:19 +0.32 7.Nb5 Nh5 8.Nf3 f6 9.Ba3 Qd7 10.Nh4 Rfb8
11.Nc3 Rxb1 12.Nxb1 g5 13.e4 gxh4
14.Qxh5 h3 15.Bf3 d4 (115.119.905) 825

20.01 4:13 +0.38 7.Nb5 Nh5 8.Nf3 f6 9.Ba3 Qd7 10.Nh4 Rfb8
11.Bxe7 Qxe7 12.Bf3 Kh7 13.e4 Bh3
14.Bxh5 gxh5 15.Qxh5 Bxf1 16.Qf5+ Kg8
17.Kxf1 (212.372.545) 837

21.01 9:52 +0.34 7.Nb5 Ne8 8.e4 Nc7 9.Nxc7 Qxc7 10.f4 exf4
11.Bxg7 Qa7+ 12.Rf2 fxg3 13.hxg3 (500.613.412) 845

22.01 17:29 +0.40 7.Nb5 Ne8 8.e4 Nc7 9.Nxc7 Qxc7
10.exd5 Bxd5 11.Bxd5 Nxd5 12.Nc4 Rfd8
13.Qf3 Qe7 14.Ra1 Qe6 (894.121.492) 852

23.01 30:04 +0.44 7.Nb5 Ne8 8.e4 Nc7 9.Nxc7 Qxc7
10.exd5 Bxd5 11.Bxd5 Nxd5 12.Nc4 Rfd8
13.Qf3 Qe7 14.Ra1 Qe6 15.Rxa8 Rxa8
16.Re1 (1.556.586.940) 862

24.01 52:41 +0.34 7.Nb5 Nh5 8.Ba3 Qd7 9.Nb3 Qxb5
10.Bxe7 Rfc8 11.Nc5 Qe8 12.Rb7 Rab8
13.Ra7 Ra8 14.Rxa8 Rxa8 15.Nxe6 fxe6
16.Bb4 e4 (2.758.739.444) 872

25.01 96:55 +0.40 7.Nb5 Nh5 8.Ba3 Qd7 9.Nb3 Qxb5
10.Bxe7 Rfc8 11.Nc5 Qe8 12.Nxe6 fxe6
13.Rb7 Rcb8 14.Qb3 Bf8 15.Bxf8 Rxb7
16.Qxb7 Qxf8 17.Qd7 (5.088.366.075) 875

25.07 100:45 +0.40 7.Nb5 Nh5 8.Ba3 Qd7 9.Nb3 Qxb5
10.Bxe7 Rfc8 11.Nc5 Qe8 12.Nxe6 fxe6
13.Rb7 Rcb8 14.Qb3 Bf8 15.Bxf8 Rxb7
16.Qxb7 Qxf8 17.Qd7 (5.295.200.649) 875

best move: Nc3-b5 time: 100:46.875 min n/s: 875.820 nodes: 5.295.200.649

One problem to get an accurate eval is possibly the rook on the open a-file from Black, it is not doing a whole lot there because White castled to the Kingside but Black still gets a full 'rook on open file' bonus whereas White has to wait a few moves before it also gets a rook on the open b-file. Another problem; in the main line the number of pawns on the Queen side gets decimated so there is not much chance of a real Queenside pawn advance anymore for White. I tried hard to find the most important characteristic, I'm not good at analyzing this but I think the dark-squared Bishop on g7 is Black's main liabilty, it can't do much more than protect some pawns, right in front of it on h6 an f6 and indirectly the pawn on e5. But these same pawns totally block its diagonals and it stays that way throughout the PV. So now I have to find a way to teach the program something along this line, diagonal really, without overdoing it. The last version of Ancalagon had a very small success in that the first few plies turned out a bit less negative than before and the PV also seems to stabilize a bit faster. I'm trying a very simple "forward mobility" for both Knights and Bishops here, moves in the forward direction are worth more for mobility than moves in the backward direction, for Knights that is not really appropriate for this position but maybe it is better not to break the symmetry between the two types of minor pieces. If I had not screwed up the eval the bishop on g7 should now get a measurable penalty for having no forward mobilty after f7-f6 has occurred, but...

..unfortunately after making this version I discovered a bug that results in the calculation of forward mobilty only if Bishop and Knight can get bonuspoints for being on a possible outpost square. This probably makes the calculation rather infrequent. Still there was some posive effect I thought that may be a little more than noise :) Now I have make a debugged forward mobility version :)


r2q1rk1/4npb1/4bnpp/3pp3/8/2NP2P1/1B1NPPBP/1R1Q1RK1 w - -

Engine: Ancalagon 1.3 WS180 Build 131, bug in forward mobility (Athlon 2009MHZ, first plies at 100% later 50% CPU capacity, 256 MB)
by Romstad, Costalba, Kiiski, de Groot

2.00 0:00 -0.33 7.e4 Bg4 (2.726) 8

2.00 0:00 -0.07 7.Nb5 Nc6 8.Nc4 Ng4 (21.619) 57

3.00 0:00 -0.07 7.Nb5 Nc6 8.Nc4 Ng4 (122.378) 217

4.00 0:00 -0.07 7.Nb5 Nc6 8.Nc4 Ng4 (129.794) 224

5.00 0:00 -0.05 7.Nb5 Ng4 8.Ba3 Re8 9.e3 (324.924) 346

6.01 0:01 -0.01 7.Nb5 Ne8 8.Ba3 Nc7 9.Nc4 dxc4
10.Bxa8 Nxa8 11.dxc4 (471.772) 382

7.01 0:01 -0.01 7.Nb5 Ne8 8.Ba3 Nc7 9.Nc4 dxc4
10.Bxa8 Nxa8 11.dxc4 (664.334) 425

8.01 0:03 -0.09 7.Nb5 Ne8 8.Nf3 f6 9.Ba3 Nc7 10.Bc5 Nxb5
11.Rxb5 (1.616.855) 495

9.01 0:07 -0.11 7.Nb5 Ne8 8.Nf3 f6 9.Ba3 Nc7 10.Bc5 Nxb5
11.Rxb5 Ra2 (3.999.544) 551

10.01 0:14 -0.09 7.Nb5 Ne8 8.Nf3 f6 9.Qc2 Nd6 10.Nc7 Rc8
11.Nxe6 Rxc2 12.Nxd8 Rxd8 (8.209.263) 573

11.01 0:26 +0.01 7.Nb5 Ne8 8.Nf3 f6 9.Qc1 Rc8 10.Bc3 Nd6
11.Nxd6 Qxd6 12.Bb4 Qa6 (15.682.467) 600

12.01 0:41 -0.11 7.Nb5 Ne8 8.Nf3 f6 9.Ba3 Nc7 10.Bc5 Nxb5
11.Rxb5 Qc7 12.Qb3 Rfb8 13.Rb1 (25.776.848) 619

13.01 1:55 0.00 7.Nb5 Ne8 8.Nf3 f6 9.Qc1 Rc8 10.Qd2 Nd6
11.Ba3 Nxb5 12.Rxb5 Qd7 13.Rfb1 Qa7 (69.892.279) 605

14.01 3:56 +0.05 7.Nb5 Ne8 8.Nf3 f6 9.Qc1 Rc8 10.Qd2 Nd6
11.Ba3 Nxb5 12.Rxb5 Qd7 13.Qb4 Rfe8
14.Rb1 (143.502.591) 607

15.01 7:40 +0.07 7.Nb5 Ne8 8.Nf3 f6 9.Qc1 Rb8 10.Ba3 Rf7
11.Rd1 Qd7 12.Nc3 Rc8 13.d4 Nd6
14.Bc5 (277.587.556) 603

16.01 15:03 0.00 7.Nb5 Ne8 8.Nf3 f6 9.Qc1 Rb8 10.Ba3 Rf7
11.Rd1 Qd7 12.Nc3 Rc8 13.Qb2 Nd6
14.e4 Qc7 (539.700.143) 597

17.01 36:29 0.00 7.Nb5 Ne8 8.Nf3 f6 9.Qc2 Rf7 10.Ba3 Ra5
11.Rb2 Nf5 12.Rfb1 Nc7 13.Bc5 Na6
14.Ba3 Nc7 (1.274.565.634) 582

18.01 190:41 +0.19 7.Nb5 (3.976.323.182) 347

{That's the kind of eval I would like to see more of here :) Also happy to see that Ancalagon still tries a move like 7... Ne8 followed by 8... f6 (the Knight has to go backward to get "forward mobility" but hopefully the effect will not be too big when debugged because forward mobilty is not really working yet...) }


19.01 223:06 +0.07 7.Nb5 Ne8 8.Nf3 f6 9.Qc1 Rb8 10.Ba3 Rf7
11.Nc3 Rc8 12.Qd2 Nd6 13.Rfc1 Rc6
14.Nb5 Rxc1+ 15.Qxc1 Nef5 16.Nh4 Nxb5
17.Rxb5 Nxh4 18.gxh4 (4.520.051.335) 337

best move: Nc3-b5 time: 240:42.407 min n/s: 332.858 nodes: 4.807.260.569
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
User avatar
Eelco de Groot
Posts: 4669
Joined: Sun Mar 12, 2006 2:40 am
Full name:   Eelco de Groot

Re: English Closed System- which chess engine best for analy

Post by Eelco de Groot »

It isn't any good yet, but I just wanted to show that it is possible to tune 'forward mobility' in such a way that 1.b4 is played in Laurence's position after some time. To my surprise actually because if I analyse Rybka's line with the new build, I think I have overdone the penalty now for the bishop on g7 in build 133 and I did not think that the new bishop mobility also would have had an effect in the start position. But looking closer, now I realize that in the initial position after 1.b2-b4 the bishop on c1 also benefits from 'forward mobility', initially without b2-b4 only square d2 counts as a possible square to go to, to take account of the fact that the knight occupying this square may move out of the way easily, but no squares on the diagonals to the left or right beyond that. With 1.b4 axb4 2.axb4 the bishop on b1 goes from one to three squares in forward mobility and gains two squares in regular mobility (the square with the own knight on it does not count there).

All in all the bishop mobility with double counting the two forms of mobility is probably overdone and is now going at the expense of other important eval characteristics like pawn formation, which is also reflected in too large eval after 1.b4, and a PV which seems a bit odd. Also for a positional eval parameter change you would expect a more immediate effect at lower plies, that I do not see that and 1. b4 is only played later may point towards some search instability, which also seemed to occur in earlier analysis of the position six moves further down Rybka's PV. Still, I did not think that it would be possible at all to single out b4 yet among many possible moves, if you look at analysis with Rybka 2.2n2 then b4 is just one of maybe twenty moves with evaluations very close together, and not in the top eight moves during the time I let the free Rybka analyze.

Eight best moves according to free Rybka, 1. b4 is not among them

r1bq1rk1/1pp1npb1/3p1npp/p3p3/2P5/P1NP2P1/1P1NPPBP/1RBQ1RK1 w - -

Engine: Rybka 2.2n2 mp 32-bit PVtips5menbases (64 MB)
by Vasik Rajlich

16 16:37 +0.07 1.Qc2 c6 2.Nf3 Be6 3.Bd2 Qc7 4.Ne4 Nxe4
5.dxe4 Nc8 6.b3 Nb6 7.c5 Nd7 8.cxd6 (45.747.805) 46

16 19:48 +0.07 1.Nf3 Re8 2.e4 Be6 3.Bd2 Qd7 4.Qc1 g5
5.Nd5 Ng6 6.Be3 a4 7.Qc3 (54.929.220) 47

16 20:55 +0.07 1.e4 Be6 2.Nf3 Re8 3.Bd2 Qd7 4.Qc1 g5
5.Nd5 Ng6 6.Be3 a4 7.Qc3 (57.411.004) 46

16 23:53 +0.06 1.Nde4 Nxe4 2.Nxe4 Nf5 3.Bd2 Be6
4.e3 c6 5.Bf3 Qe7 6.Nc3 Rfd8 7.Qb3 h5
8.Ra1 (65.972.715) 47

16 26:31 +0.06 1.b3 c6 2.Nf3 Bd7 3.Qc2 Nf5 4.Bb2 Re8
5.e4 Nd4 6.Nxd4 exd4 7.Ne2 c5 (72.347.950) 46

16 23:08 +0.05 1.Re1 c6 2.Nde4 Nf5 3.Nxf6+ Qxf6
4.e3 Qe7 5.Bd2 h5 6.Bf3 Be6 7.Qa4 Rfd8
8.Rec1 (63.802.049) 47

16 24:49 +0.05 1.Bf3 Nc6 2.Nb5 Nd4 3.Nxd4 exd4
4.Nb3 c5 5.Nd2 Qe7 6.Ne4 Ng4 7.Bf4 (68.286.463) 46

16 29:48 +0.04 1.Qb3 Nf5 2.e3 c6 3.Nde4 Nxe4 4.Bxe4 Qc7
5.Bd2 Be6 6.Qa4 Bf6 7.Bf3 Rfd8 8.Ne4 Be7
9.b3 (80.977.490) 46

Ancalagon with the patched but badly tuned new parameter 'forward mobility'

[d]r1bq1rk1/1pp1npb1/3p1npp/p3p3/2P5/P1NP2P1/1P1NPPBP/1RBQ1RK1 w - -

Engine: Ancalagon 1.3 WS180 Build 133 (Athlon 2009 MHz, 256 MB)
by Romstad, Costalba, Kiiski, de Groot

5.01 0:02 -0.07 1.Qb3 Nc6 2.Nf3 Bd7 3.Bd2 (1.063.946) 442

5.02 0:02 -0.07 1.Nde4 (1.070.435) 442

5.03 0:02 -0.06 1.b3 (1.102.693) 443

5.04 0:02 -0.06 1.Qa4 (1.116.568) 443

5.05 0:02 -0.05 1.Nf3 (1.169.509) 445

5.06 0:02 -0.05 1.h3 (1.174.838) 447

5.08 0:03 -0.04 1.b4 (1.506.794) 459

5.11 0:03 -0.04 1.Ra1 (1.556.862) 457

5.13 0:03 -0.03 1.Qc2 (1.571.427) 457

5.16 0:03 -0.03 1.Qe1 (1.598.991) 458

5.20 0:03 -0.02 1.Re1 (1.628.366) 459

5.21 0:03 -0.02 1.e3 (1.639.340) 460

6.01 0:03 0.00 1.e3 c6 2.Nde4 Nxe4 3.Nxe4 d5 4.cxd5 cxd5 (1.702.114) 461

6.02 0:03 0.00 1.Re1 (1.788.090) 463

6.04 0:07 +0.13 1.Qc2 Nc6 2.Nf3 Bd7 3.Bd2 g5 4.b3 Qe7 (3.427.272) 478

6.08 0:07 +0.14 1.Nf3 (3.605.106) 480

6.10 0:07 +0.14 1.b3 (3.702.585) 482

6.11 0:07 +0.15 1.Nde4 (3.739.840) 482

7.01 0:08 +0.39 1.Nde4 Nxe4 2.Nxe4 Bd7 3.Bd2 b6 4.b3 g5 (4.299.572) 490

8.01 0:10 +0.31 1.Nde4 Nxe4 2.Nxe4 c6 3.Be3 Nf5
4.Bd2 b6 5.Nc3 (5.094.768) 509

9.01 0:12 +0.31 1.Nde4 Nxe4 2.Nxe4 c6 3.Be3 b6 4.Qb3 Rb8
5.Bd2 d5 (6.423.977) 524

10.01 0:19 +0.21 1.Nde4 Nxe4 2.Bxe4 c6 3.Qb3 b6 4.Be3 Rb8
5.Bg2 Bd7 6.Bd2 (10.499.469) 540

11.01 0:43 +0.23 1.Nde4 Nxe4 2.Bxe4 c6 3.Bg2 b6 4.Be3 Be6
5.Rc1 d5 6.cxd5 Nxd5 7.Nxd5 cxd5 (22.975.567) 533

12.01 1:18 +0.17 1.Nde4 Nxe4 2.Bxe4 c6 3.Bg2 b6 4.Be3 Be6
5.Rc1 d5 6.cxd5 cxd5 7.Qa4 (42.762.227) 548

12.02 2:19 +0.18 1.Nf3 (74.192.607) 530

12.03 2:26 +0.18 1.Qc2 (78.380.212) 533

12.15 3:41 +0.19 1.Re1 (116.988.908) 527

13.01 4:40 +0.21 1.Re1 c6 2.e4 g5 3.Nf1 Bd7 4.b4 b5
5.cxb5 cxb5 6.Ne3 Qb6 7.bxa5 Qxa5 (148.155.835) 528

14.01 8:22 +0.21 1.Re1 c6 2.e4 g5 3.Nf1 Bd7 4.Ne3 Qc7
5.Bd2 b5 6.cxb5 cxb5 7.Rc1 b4 (262.890.511) 523

15.01 14:54 +0.17 1.Re1 c6 2.e4 g5 3.Nf1 Bd7 4.Ne3 b5
5.cxb5 cxb5 6.b4 h5 7.Nf5 Nxf5
8.exf5 Rc8 (458.638.013) 512

15.11 53:03 +0.41 1.b4 (1.609.412.349) 505

16.01 55:37 +0.41 1.b4 axb4 2.axb4 d5 3.Qb3 Be6 4.b5 Re8
5.Ba3 e4 6.Rfd1 exd3 7.exd3 Nf5
8.Nf3 Bf8 (1.689.927.315) 506

17.01 75:09 +0.31 1.b4 axb4 2.axb4 d5 3.Qb3 c6 4.Ba3 d4
5.Nce4 Nxe4 6.Nxe4 b5 7.Nc5 bxc4
8.dxc4 Bf5 9.Ra1 Qc7 (2.323.401.347) 515


Eelco
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan