Does your engine see this position as a draw ?

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

Moderators: hgm, Rebel, chrisw

Robert Flesher
Posts: 1280
Joined: Tue Aug 18, 2009 3:06 am

Does your engine see this position as a draw ?

Post by Robert Flesher »

[D]8/6P1/4b3/2p5/4k3/p1B1p3/p1P1K3/8 b - - 0 83


It seems some engines still need alot of work in endgame fundamentals. It is very easy for a human player to recognize this is a draw due to opposite colored bishops. I find it amusing that this basic knowledge is not found it many top engines. The trick is to get to these drawish positions, no easy task.
zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: Does your engine see this position as a draw ?

Post by zullil »

Robert Flesher wrote:[D]8/6P1/4b3/2p5/4k3/p1B1p3/p1P1K3/8 b - - 0 83


It seems some engines still need alot of work in endgame fundamentals. It is very easy for a human player to recognize this is a draw due to opposite colored bishops. I find it amusing that this basic knowledge is not found it many top engines. The trick is to get to these drawish positions, no easy task.
Stockfish-1.6.3 (8 threads) does not seem to see a draw, though of course it isn't finding a win either:

Code: Select all

Searching: 8/6P1/4b3/2p5/4k3/p1B1p3/p1P1K3/8 b - -
infinite: 1 ponder: 0 time: 0 increment: 0 moves to go: 0
 2     +2.59   00:01      234 Bc4+ Kd1 Bg8 
 3     +2.10   00:01      583 Bc4+ Kd1 Bg8 Ke2 
 4     +2.30   00:01     1148 Bc4+ Kd1 Be6 Ba1 Bg8 
 5     +2.14   00:01     1757 Bc4+ Kd1 Be6 Ba1 Bg8 Ke2 Bc4+ Kd1 
 6     +2.14   00:01     3353 Bc4+ Kd1 Be6 Ba1 Bg8 Ke2 Bc4+ Kd1 
 7     +2.06   00:01     5218 Bc4+ Kd1 Be6 Ba1 Bg8 Ke2 Bc4+ Kd1 Be6 
 8     +2.02   00:01    12353 Bc4+ Kd1 Be6 Bf6 Bg8 Ke2 Bc4+ Kd1 Bf7 Ba1 Bg8 Ke2 
                              Bc4+ Kd1 Kf5 c3 
 9     +2.02   00:01    22024 Bc4+ Kd1 Be6 Bf6 Bg8 Bc3 Bc4 Bf6 Bf7 Ba1 Bd5 Bf6 
                              Bf7 
10     +2.10   00:01    40078 Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Kf5 Ke1 Kf4 Kd1 
                              Bg8 Ke2 Ke4 Kd1 Bf7 Bc3 Bc4 
11     +1.94   00:01    63743 Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Bd5 Ke1 Bf7 Ke2 
                              Bh5+ Ke1 Bf7 
12     +1.94   00:01    87146 Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Bd5 Ke1 Bf7 Ke2 
                              Bh5+ Ke1 Bf7 
13     +2.02   00:01   137867 Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Bd5 Ke1 Bf7 Kd1 
                              Be6 Ke2 Bg4+ Ke1 
14     +2.02   00:01   185746 Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Bd5 Ke1 Kf3 Bc3 
                              Bc4 Kd1 Bg8 Ke1 Kf4 Ba1 Kg5 
15     +1.98   00:01   286116 Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Bd5 Ke1 Kf3 Bc3 
                              Bg8 Ba1 Bf7 Bf6 Bc4 Ba1 Bf7 
16     +1.98   00:01   456067 Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Bd5 Ke1 Kf3 Bc3 
                              Bg8 Ba1 Bf7 Kd1 Ke4 Ke1 Bg8 Ke2 Bc4+ Kd1 
17     +2.02   00:01   760244 Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Kf3 Ke1 Bg8 Bc3 
                              Kf4 Ba1 Bd5 Kd1 Bc4 Kc1 Kf3 
18     +2.02   00:01    1135k Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Kf3 Ke1 Bg8 Bc3 
                              Kf4 Ba1 Bd5 Ke2 Bc4+ Ke1 Kf5 Kd1 Bg8 Ke1 Bc4 
19     +2.02   00:01    1665k Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Kf3 Ke1 Bg8 Bc3 
                              Kf4 Ba1 Bd5 Ke2 Bc4+ Ke1 Bg8 Kd1 Kf3 Bf6 Kf2 Bh4+ 
                              Kf1 
20     +2.02   00:01    2488k Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Kf3 Ke1 Bg8 Bc3 
                              Kf4 Ba1 Bd5 Ke2 Bc4+ Ke1 Kf3 Bc3 Bg8 Bf6 Bc4 Bc3 
21     +2.02   00:01    3897k Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Kf3 Ke1 Bg8 Bc3 
                              Kf4 Ba1 Bd5 Ke2 Bc4+ Ke1 Bg8 Ke2 Be6 Kd1 Kf3 Bc3 
                              Kf4 Ba1 
22     +1.98   00:02    6105k Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Kf3 Ke1 Bg8 Bc3 
                              Kf4 Ba1 Bd5 Ke2 Bc4+ Ke1 Bg8 Ke2 Bf7 Kd1 Kf3 Ke1 
                              Kf4 Kd1 
23     +2.02   00:02    9270k Bc4+ Kd1 Be6 Ke1 Bg8 Kd1 Bc4 Ba1 Kf3 Ke1 Bg8 Bc3 
                              Kf4 Ba1 Bd5 Ke2 Bc4+ Ke1 Kg5 Bc3 Kg4 Bf6 Kf5 Bc3 
                              Bg8 Ke2 Ke4 Ba1 Bc4+ Ke1 Bd5 Ke2 Kf4 Kd3 Bf7 c4 
                              Kf3 Kc3 Be6 Kb3 e2 
24     +2.10   00:03   18710k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Bg8 Kd2 Bf7 Ke2 Be6 Kd2 Bd5 Ke2 Bc4+ 
                              Kd2 Be6 Ke2 Bd5 Kd1 Bc6 Kd2 Bd5 
25     +2.10   00:04   25608k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Bg8 Kd2 Be6 Ke2 c4 Kd2 Kd5 Kc3 Kc5 
                              Kd2 Bf5 Kc3 Kd5 Kd2 Kc5 
26     +2.10   00:05   37316k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Bg8 Kd2 Be6 Ke2 c4 Kd2 Kd5 Kc3 Kc5 
                              Kd2 Bf5 Kc3 Kd5 Kd2 Kc5 
27     +2.10   00:07   55713k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Bg8 Kd2 Be6 Ke2 c4 Kd2 Kd5 Kc3 Kc5 
                              Kd2 Bf5 Kc3 Kd5 Kd2 Be4 Kc3 
28     +2.06   00:11   97535k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Bg8 Kd2 Be6 Ke2 c4 Kd2 Kd5 Kc3 Kc5 
                              Kd2 Bf5 Kc3 Kd5 Kd2 Be4 Kc3 
29     +2.10   00:18  171801k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Bg8 Kd2 Be6 Ke2 c4 Kd2 Kd5 Kc3 Kc5 
                              Kd2 Bf5 Kc3 Be4 Kd2 Kb4 Bc3+ Ka4 Ba1 
30     +2.10   00:27  262551k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Bg8 Kd2 Be6 Ke2 c4 Kd2 Kd5 Kc3 Kc5 
                              Kd2 Bf5 Kc3 Be4 Kd2 Bd5 Kc1 Kb4 Kd2 Be4 Bc3+ Kb5 
                              Ba1 Kc5 Kc1 Kb4 
31     +2.14   00:40  397796k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Be6 Kd2 Bf7 Ke2 Bc4+ Kd2 Be6 Ke2 c4 
                              Kd2 Kd5 Kc3 Kc5 Kd2 Bf5 Kc3 Be4 Kd2 Kb4 Kc1 Bf5 
                              Kd2 Be4 
32     +2.14   01:05  654997k Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Be6 Kd2 Bf7 Ke2 Bc4+ Kd2 Be6 Ke2 c4 
                              Kd2 Kd5 Kc3 Kc5 Kd2 Bf5 Kc3 Bh7 Kd2 Bg8 Ke3 Be6 
                              Kd2 
33     +2.14   01:47    1096M Bc4+ Kd1 Kf5 Ba1 Kg6 g8=N Bxg8 Ke2 Kf5 Kxe3 Bc4 
                              Kd2 Ke4 Kc3 Be6 Kd2 Bf7 Ke2 Bc4+ Kd2 Be6 Ke2 c4 
                              Kd2 Kd5 Kc3 Kc5 Kd2 Bf5 Kc3 Bh7 Kd2 Be4 Bc3 Kd5 
                              Ba1 
34  <  +1.94   03&#58;18    2054M Bc4+ Kd1 Bg8 Ke1 Kf4 Ba1 Bc4 Bc3 e2 Ba1 
35     +2.02   06&#58;03    3792M Bc4+ Kd1 Bg8 Ke1 Kf4 Ba1 Bc4 Bc3 Kg4 Ba1 Kg5 Bc3 
                              Kf5 Kd1 Ke4 Ba1 Kf3 Ke1 Bf7 Bf6 Bd5 Bc3 Ke4 Bf6 
                              Kf5 Bc3 Kf4 Ke2 Bf7 Bf6 Bc4+ Ke1 Ke4 Ba1 Be6 Ke2 
                              Bg4+ Ke1 Be6 
36     +2.02   10&#58;51    6795M Bc4+ Kd1 Bg8 Ke1 Kf4 Ba1 Bc4 Kd1 Kf5 Ke1 Ke4 Kd1 
                              Kf3 Ke1 Bf7 Bf6 Bd5 Bc3 Ke4 Bf6 Kf5 Bc3 Kf4 Ke2 
                              Bf7 Ke1 Ke4 Ba1 Kf5 Ke2 Kf4 Bc3 Be6 Ba1 Ke4 Bf6 
                              Bg8 Ba1 Kf4 
Nodes&#58; 7056252086
Nodes/second&#58; 10416162
Best move&#58; Bc4+
Ponder move&#58; Kd1
User avatar
Eelco de Groot
Posts: 4583
Joined: Sun Mar 12, 2006 2:40 am
Full name:   

Re: Does your engine see this position as a draw ?

Post by Eelco de Groot »

Robert Flesher wrote:[D]8/6P1/4b3/2p5/4k3/p1B1p3/p1P1K3/8 b - - 0 83


It seems some engines still need alot of work in endgame fundamentals. It is very easy for a human player to recognize this is a draw due to opposite colored bishops. I find it amusing that this basic knowledge is not found it many top engines. The trick is to get to these drawish positions, no easy task.
I tried to give some extra knowledge to RainbowSerpent here, but the effect will never be dramatic; conventional chess programs will always give some extra points to Black because it has one doubled pluspawn and one passed pluspawn on the sixth, so that material advantage will always count if you are not absolutely certain there is no way to make progress. In opposite coloured Bishop endgames the advantages will just be halved by Stockfish/Glaurung for the stronger side, that is enough to try to avoid these endgames if you have something better. You could write up additional rules that would maybe be enough to detect most draws but it would just be so expensive in computation time and a little bit in added complexity of the code, that most programmers rather concentrate on other things. It is more the convenience for the user here that he would get quick confirmation that it is indeed what is obvious to a clubplayer; a dead draw. Not really an elo-necessity to give 0.00.

But it was nice to try getting some knowledge in, Stockfish already knows if it is an opposite coloured Bishops endgame easily enough, it uses this rule to halve the eval more or less. I just added a little penalty for passed pawns in that case. I think the rule could be made more efficient but I better leave that to the real programmers. I avoided creating new global variables or new entries in the position object.

New code:

Code: Select all


		if &#40;pos.opposite_colored_bishops&#40;))
		&#123;
			ebonus -= Value&#40;r * 30&#41;;
			bool oppositeColoredBishopsPawns = &#40;pos.non_pawn_material&#40;WHITE&#41; == BishopValueMidgame
                && pos.non_pawn_material&#40;BLACK&#41; == BishopValueMidgame&#41;; // Only the two Bishops
			if &#40;bit_is_set&#40;ei.attacked_by&#40;Them, BISHOP&#41;,qsq&#41; || &#40;bit_is_set&#40;ei.attacked_by&#40;Them, BISHOP&#41;,blockSq&#41;
				&& &#40;square_color&#40;qsq&#41; == square_color&#40;blockSq&#41;)))
			&#123;
				if &#40;oppositeColoredBishopsPawns&#41;
					ebonus -= Value&#40;tr * 6&#41;;
				else
					ebonus -= Value&#40;tr * 3&#41;;
			&#125;
		&#125; // Wrong colour Bishop penalty in opposite coloured Bishop endgame

just before the end of the passed pawn code

Code: Select all


        // Add the scores for this pawn to the middle game and endgame eval.
        ei.value += Sign&#91;Us&#93; * apply_weight&#40;make_score&#40;mbonus, ebonus&#41;, WeightPassedPawns&#41;;

    &#125; // while
&#125;
The values are rough guesses, more important is if the engine slows down with the new rules and that the new code hopefully does not introduce bugs.
This code as I programmed it now will influence the placing of the Bishops so I should not make the penalty too large, I wanted the rule to be flexible.

[D]8/6P1/4b3/2p5/4k3/p1B1p3/p1P1K3/8 b - -

Engine: Rainbow Serpent 1.6.3s(dc) Build 113 (Athlon 2009 MHz, 128 MB)
by Tord Romstad, Marco Costalba, Joona Kiiski Modifications: Dann Corbit

1.00 0:00 +1.77 1...Bc4+ (136) 1

2.00 0:00 +1.65 1...Bc4+ 2.Kd1 a1R+ 3.Bxa1 (282) 2

3.00 0:00 +1.61 1...Bc4+ 2.Kd1 Kf4 3.Bf6 (787) 6

4.00 0:00 +1.57 1...Bc4+ 2.Kd1 Kf4 3.Kc1 Ke4 (2.471) 19

5.00 0:00 +1.61 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Kf5 4.g8N Bxg8 (4.126) 29

6.00 0:00 +1.53 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Kf5 4.g8N Bxg8
5.Bc3 (7.472) 52

7.00 0:00 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Bc3 Bd5
5.Ke2 Bc4+ 6.Kd1 (11.848) 84

8.00 0:00 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Bc3 Bd5
5.Ke2 Bc4+ 6.Kd1 (15.105) 96

9.00 0:00 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Bc3 Bd5
5.Ke1 Bc4 6.Kd1 a1R+ 7.Bxa1 Ke4
8.Bc3 (22.104) 140

10.00 0:00 +1.45 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Bc3 Bd5
5.Ke1 Bc4 6.Kd1 a1R+ 7.Bxa1 Ke4
8.Bc3 (40.984) 218

11.00 0:00 +1.45 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kd5 6.Ke2 Kc4 7.Be5 (71.023) 302

12.00 0:00 +1.57 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Kd1 Bc4 7.Bf6 Kf4 8.Ke1 Kg4
9.g8B Bxg8 10.Ke2 Kf5 (179.911) 499

13.00 0:00 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Bc3 Kg4 8.Bf6 Kf3 (217.419) 534

14.00 0:00 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Bc3 Kg4 8.Kd1 Kf5
9.g8Q Bxg8 10.Ke2 Ke4 (279.395) 595

15.00 0:00 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Bc3 Kg4 8.Kd1 Kf5
9.g8Q Bxg8 10.Ke2 Ke4 (345.139) 630

16.01 0:01 +1.53 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Ke4
9.Kd1 Bf7 10.Bf6 Be6 11.Bc3 Kf3
12.Ke1 Bc4 13.Be5 (980.678) 738

17.01 0:02 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Kd1 Bf7 10.Ke2 Bc4+ 11.Kd1 Kf3
12.Ke1 Bd5 13.Bf6 Bc4 (1.580.685) 777

18.01 0:02 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Kd1 Bf7 10.Ke2 Bc4+ 11.Kd1 Ke4
12.Bf6 Be6 13.Ke2 Bc4+ 14.Kd1 (1.821.359) 798

19.01 0:02 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Ke4 10.Ke1 Kf3 11.Bf6 Be6
12.Bc3 Bd5 (2.157.824) 817

20.01 0:03 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Ke4 10.Bf6 Bc4+ 11.Kd1 Kf4
12.Bc3 Bd5 13.Ke2 (2.847.194) 835

21.01 0:07 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Ke4 10.Bf6 Bc4+ 11.Kd1 Kf4
12.Bc3 Kf5 13.g8Q Bxg8 14.Ke2 Ke4 (6.658.835) 840

22.01 0:08 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Be6 10.Bf6 Ke4 11.Ke1 Bd5
12.Kd1 a1R+ 13.Bxa1 (7.466.348) 851

23.01 0:20 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Be6 10.Bf6 Bf7 11.Bc3 Bd5
12.Ke1 Kf3 13.Bf6 Kf4 14.Ke2 Be6 (17.657.489) 859

24.01 0:22 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Be6 10.Bf6 Bf7 11.Bc3 Bc4+
12.Kd1 Kf3 13.Ke1 Bd5 14.Bf6 Bc4 (19.432.513) 863

25.01 0:25 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Be6 10.Ke1 Bf7 11.Ba1 Bc4
12.Bc3 Kg5 13.Kd1 Kf5 14.g8N Bxg8 (21.798.323) 869

26.01 0:29 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Be6 10.Ke1 Bf7 11.Ba1 Bc4
12.Bc3 Kg5 13.Kd1 Kf5 14.Ke1 Kf4 (25.584.563) 877

27.01 0:33 +1.49 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Be6 10.Ke1 Bf7 11.Kd1 Kf5
12.Ke2 Ke4 13.Kd1 Bc4 14.Bf6 Kf4 (29.916.209) 886

28.01 2:59 +1.53 1...Bc4+ 2.Kd1 Kf4 3.Bf6 Be6 4.Ke1 Ke4
5.Bc3 Kf3 6.Bf6 Bc4 7.Be5 Bd5 8.Bc3 Kf4
9.Ke2 Bc4+ 10.Kd1 Kf5 11.Ke1 Kg5
12.Kd1 Kg4 13.Bf6 Kf5 14.Bc3 Ke4 (153.888.082) 858

29.01 3:23 +1.33-- 1...Bc4+ 2.Kd1 Be6 3.Bf6 Kf5 4.Bc3 Bc4
5.Ke1 Kg5 6.Ba1 Bf7 7.Bc3 Bc4 (174.075.680) 855

30.01 12:08 +1.33 1...Bc4+ 2.Kd1 Be6 3.Bf6 Kf5 4.Bc3 Bc4
5.Ke1 Kg5 6.Ba1 Bf7 7.Bc3 Kf5 8.Ke2 Kf4
9.Bf6 Bd5 10.Bc3 Bc4+ 11.Ke1 Kg3
12.Bf6 Kf3 13.Be5 Ke4 14.Bf6 Bd5 (625.935.376) 859

best move: Be6-c4 time: 15:05.578 min n/s: 859.586 nodes: 778.410.078

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