couple cute moves from TwistedLogic

Discussion of computer chess matches and engine tournaments.

Moderator: Ras

jdart
Posts: 4405
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

couple cute moves from TwistedLogic

Post by jdart »

TwistedLogic is quite a tactical monster. Neither of these is really very hard but they are both cute moves (from recent CCRL games):

[d] rr6/p3Ppk1/2p3p1/q2p1b1p/3P3P/1Pp2BP1/P1P2P2/1KR1Q2R b - -

bm Rxb3+ (mate in 10).

[d] r2qnr2/1n3ppk/b1pb4/4pNPP/1p2P3/4BN2/1PPQ1P2/3RK2R w K -

bm Bb6 - lures the Queen away, preparing a decisive attack.
Frank Quisinsky
Posts: 7036
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: couple cute moves from TwistedLogic

Post by Frank Quisinsky »

Hi Jon,

yes, yes ... absolutley.
And it seems Hannibal too :-)

Twisted Logic are after my SWCR statistics the number four in "tactical monster" approach.

01. Spark
02. Hiarcs
03. Stockfish
04. Twisted
05. Junior

Best
Frank

nice examples you added!
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: couple cute moves from TwistedLogic

Post by bob »

jdart wrote:TwistedLogic is quite a tactical monster. Neither of these is really very hard but they are both cute moves (from recent CCRL games):

[d] rr6/p3Ppk1/2p3p1/q2p1b1p/3P3P/1Pp2BP1/P1P2P2/1KR1Q2R b - -

bm Rxb3+ (mate in 10).

[d] r2qnr2/1n3ppk/b1pb4/4pNPP/1p2P3/4BN2/1PPQ1P2/3RK2R w K -

bm Bb6 - lures the Queen away, preparing a decisive attack.
First one is really easy. Second one g6+ is also difficult to answer. Scores are quite similar after deep searches.
User avatar
Eelco de Groot
Posts: 4669
Joined: Sun Mar 12, 2006 2:40 am
Full name:   Eelco de Groot

Re: couple cute moves from TwistedLogic

Post by Eelco de Groot »

The second position takes Rainbow Serpent more than 8 minutes so nicely difficult for testing tactics extensions etc.! Ends up with a big score but as Robert says g6+ seems not bad either for White.

[d]r2qnr2/1n3ppk/b1pb4/4pNPP/1p2P3/4BN2/1PPQ1P2/3RK2R w K -

Engine: Rainbow Serpent 1.8(s)dc Build 041 (Athlon 2009 MHz, 256 MB)
by Tord Romstad, Marco Costalba, Joona Kiiski

7.00 0:00 -0.30 1.h6 g6 2.Nxd6 Qxd6 3.Qxd6 Nexd6
4.Ra1 (369.851) 394

7.00 0:01 -0.24 1.g6+ fxg6 2.Ng5+ Kg8 3.hxg6 Bc4
4.b3 Qb6 (410.067) 404

8.01 0:01 +0.21 1.g6+ fxg6 2.Ng5+ Kg8 3.hxg6 Bc4
4.Rb1 (609.723) 443

9.01 0:01 +0.37 1.g6+ Kg8 (914.326) 468

10.01 0:02 +0.41 1.g6+ fxg6 2.Ng5+ Kg8 3.hxg6 Qd7
4.Nf7 Rxf7 5.gxf7+ Kxf7 6.Nd4 (1.118.554) 480

11.01 0:02 +0.66++ 1.g6+ fxg6 (1.332.075) 492

11.01 0:02 +0.78++ 1.g6+ fxg6 (1.429.089) 497

11.01 0:03 +0.44 1.g6+ Kg8 2.Ng5 fxg6 3.hxg6 Qd7 4.f4 Rxf5
5.Qh2 Kf8 6.exf5 Qe6 (1.522.517) 499

12.01 0:03 +0.36-- 1.g6+ Kg8 (1.822.880) 507

12.01 0:04 +0.28-- 1.g6+ Kg8 (2.222.792) 511

12.01 0:04 +0.60++ 1.g6+ Kg8 (2.407.583) 515

12.01 0:04 +0.12-- 1.g6+ Kg8 (2.428.694) 514

12.01 0:05 +0.68++ 1.g6+ Kg8 (2.612.499) 519

12.01 0:05 +0.70 1.g6+ Kg8 2.Ng5 Bc4 3.gxf7+ Bxf7
4.h6 Bc4 5.h7+ Kh8 6.b3 Bf7 7.Rc1 (2.668.258) 519

13.01 0:05 +0.41-- 1.g6+ Kg8 (2.902.795) 521

13.01 0:06 +0.87 1.g6+ Kg8 2.Ng5 b3 3.gxf7+ Rxf7
4.Nxf7 Kxf7 5.cxb3 Bf8 6.Qc3 Qa5
7.h6 Nd8 (3.410.847) 527

14.01 0:07 +0.96 1.g6+ Kg8 2.Ng5 b3 3.gxf7+ Rxf7
4.Nxf7 Kxf7 5.cxb3 Bf8 6.h6 Qxd2+
7.Bxd2 gxh6 8.Bxh6 Bb4+ 9.Bd2 Bc5
10.Ra1 (3.726.140) 529

15.01 0:09 +0.76-- 1.g6+ Kg8 (4.986.222) 540

15.01 0:10 +0.56-- 1.g6+ Kg8 (5.802.835) 546

15.01 0:12 +0.16-- 1.g6+ Kg8 (6.823.625) 547

15.01 0:15 +0.86 1.g6+ Kg8 2.Ng5 Qf6 3.gxf7+ Rxf7
4.Nxf7 Qxf7 5.h6 g6 6.Rg1 Kh7 7.Nh4 Nc5
8.Bd4 (8.252.457) 550

16.01 0:15 +0.70-- 1.g6+ Kg8 (8.542.344) 551

16.01 0:21 +0.54-- 1.g6+ Kg8 (11.883.939) 548

16.01 0:30 +1.10 1.g6+ Kg8 2.Ng5 Qf6 3.f3 Rd8 4.gxf7+ Rxf7
5.Nxf7 Qxf7 6.Qg2 Kh8 7.h6 g6 8.Nh4 Kh7
9.Bc1 (16.851.599) 545

17.01 0:37 +1.30 1.g6+ Kg8 2.Ng5 b3 3.h6 fxg6 4.hxg7 gxf5
5.Ne6 Nxg7 6.Nxd8 Raxd8 7.exf5 Nxf5
8.cxb3 Bc5 9.Qc2 Bxe3 10.Rd7 (20.703.101) 547

18.01 0:46 +1.51 1.g6+ Kg8 2.Ng5 b3 3.h6 fxg6 4.hxg7 gxf5
5.Ne6 Nxg7 6.Nxd8 Raxd8 7.cxb3 Bb5
8.Qc3 Rd7 9.exf5 Nxf5 10.Rf1 (25.349.021) 550

19.01 0:52 +1.18-- 1.g6+ Kg8 (28.839.581) 553

19.01 1:06 +1.46 1.g6+ Kg8 2.Ng5 b3 3.h6 fxg6 4.hxg7 gxf5
5.Ne6 Nxg7 6.Nxd8 Raxd8 7.cxb3 fxe4
8.Qc3 Bb5 9.Bg5 Rd7 10.Rh4 Rc7
11.Rb1 (36.850.625) 556

20.01 1:17 +1.43 1.g6+ Kg8 2.Ng5 b3 3.h6 fxg6 4.hxg7 gxf5
5.Ne6 Nxg7 6.Nxd8 Raxd8 7.cxb3 fxe4
8.Qc3 Bb5 9.Bg5 Ra8 (43.243.375) 556

21.01 3:29 +1.35-- 1.g6+ Kg8 (115.829.132) 552

21.01 5:37 +1.59++ 1.g6+ Kg8 (184.866.156) 548

21.01 5:47 +1.65 1.g6+ Kg8 2.Ng5 b3 3.h6 fxg6 4.hxg7 Rxf5
5.Ne6 Rh5 6.Rxh5 gxh5 7.Nxd8 Nxd8
8.cxb3 Bb5 9.f3 Nf7 10.Kf2 Kxg7
11.Rg1+ Kf8 12.Rg6 Ra1 (190.496.065) 547

22.01 6:49 +2.07 1.g6+ Kg8 2.Ng5 Bc4 3.b3 f6 4.bxc4 fxg5
5.h6 Rxf5 6.exf5 gxh6 7.Qe2 Qf6 8.c5 Nxc5
9.Rxh6 Qxf5 10.Qh5 Qf6 11.Bxg5 Qg7
12.Bf6 (223.021.514) 545


22.10 8:37 +2.14++ 1.Bb6 Qd7 (281.999.187) 545

22.10 8:42 +2.38++ 1.Bb6 Qd7 (284.909.145) 545

22.10 8:49 +2.86++ 1.Bb6 Qd7 (288.725.837) 545

22.10 9:01 +3.83++ 1.Bb6 Qd7 (295.528.663) 545

22.10 10:19 +5.06 1.Bb6 Qd7 2.Nxe5 Qxf5 3.exf5 Bxe5
4.Qxb4 Kg8 5.h6 Ned6 6.f4 c5 7.Bxc5 Rfe8
8.Kf2 Nxc5 9.fxe5 Nde4+ 10.Ke3 Rxe5
11.Kf4 Rae8 12.Rdg1 (339.013.056) 546

23.01 21:06 +6.23 1.Bb6 Bc7 2.Qxb4 Ned6 3.g6+ Kg8 4.h6 Bxb6
5.hxg7 Nxf5 6.Rxd8 Rfxd8 7.Qxb6 fxg6
8.exf5 Bc4 9.Rh8+ Kxg7 10.Rxd8 Nxd8
11.Qc7+ Bf7 12.fxg6 Kxg6 13.Nxe5+ Kg7
14.Kd2 (711.704.643) 561

24.01 29:56 +7.93 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Nexd6
4.g6+ Kg8 5.Bxd8 c5 6.Ne7+ Kh8
7.gxf7 Rxf7 8.Ng6+ Kg8 9.h6 gxh6
10.Qa3 Nxd8 11.Qxc5 Bc4 12.Qxd6 Rxf3
13.Qd1 (1.014.917.998) 564

25.01 34:26 +8.41 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Nexd6
4.g6+ Kg8 5.Bxd8 c5 6.Ne7+ Kh8
7.gxf7 Rxf7 8.Ng6+ Kg8 9.h6 gxh6
10.Qa3 Nxd8 11.Qxc5 Bc4 12.Qxd6 Rxf3
13.Ne7+ Kf7 14.Rxh6 (1.168.821.324) 565


best move: Be3-b6 time: 39:19.078 min n/s: 566.888 nodes: 1.337.316.741
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: couple cute moves from TwistedLogic

Post by Eelco de Groot »

I checked the position with the slightly more accurate nextbestMove code. At first I got very strange results so I thought I had messed it up but it turned out I had a broken FEN-string, I left out the first Rook in the top corner and so all the other pieces on the last row moved up one square to the left. Garbage in - Garbage out, with the correct FEN the results were better. Stockfish 1.8 is still faster but also is a faster compile. The PVs are different with this version, apart from the Fail Highs and Fail Lows they are all long PVs. I think that is very useful for analysis, the nextbestMove code helps a bit so they don't get shortened.

Especially in case of a Fail Low I'd rather have a long PV because the best move now may change and the Fail Low may have been inaccurate so I take some other small codesteps there as well that reduces the Fail Lows when the PV returns to near the root of the search tree, there it matters most.

Code: Select all

              // Step extra. pv search (only in PV nodes)
              // Search only for possible new PV nodes, if instead value >= beta then
              // parent node fails low with value <= alpha and tries another move. 
              // [If parent node is rootnode rootmove fails low. I hacked this part a bit. EdG]
              if (PvNode && value > alpha)
			  {
				  Value newBeta = beta;
				  if (value > beta && (ply%2 > 0) && ply <= 10)  // Hack to reduce Fail Lows when near root
				  {
					  value = search<NonPV>(pos, ss+1, -(alpha+1), -alpha, newDepth + 2*OnePly, ply+1);
					  newBeta = beta + Max(value - beta, Value(0x25));
					  /*newDepth += OnePly;*/					  
				  }

                  value = newDepth < OnePly ? -qsearch<PV>(pos, ss+1, -newBeta, -alpha, Depth(0), ply+1)
                                            : - search<PV>(pos, ss+1, -newBeta, -alpha, newDepth, ply+1);
			  }
Because this version has dropped the condition that the value of a node should be < beta, it does much more PV searches also when not near the root. So you might make it more strict there (far from the root) and still have less Fail Lows near the root. A matter of experimenting what works better especially in the first iterations Fail Lows are sometimes good, there you want them, not later on.


r2qnr2/1n3ppk/b1pb4/4pNPP/1p2P3/4BN2/1PPQ1P2/3RK2R w K -

Engine: Rainbow Serpent 1.8(s)dc Build 044 (Athlon 2009 MHz, 256 MB)
by Tord Romstad, Marco Costalba, Joona Kiiski

1.00 0:00 -0.04 1.h6 (3.365) 11

2.00 0:00 +0.68 1.h6 g6 (4.641) 14

3.00 0:00 -0.64 1.h6 g6 2.Ng3 (8.022) 25

3.00 0:00 -0.59 1.Ra1 Rh8 2.Nh6 (25.824) 75

3.00 0:00 -0.55 1.b3 Rh8 2.N3d4 (32.820) 91

3.00 0:00 -0.51 1.Qc1 b3 2.Nd2 (36.922) 98

4.00 0:00 -1.69 1.Qc1 b3 2.h6 Bb4+ 3.c3 (52.553) 134

4.00 0:00 -1.63 1.b3 Rc8 (53.770) 137

4.00 0:00 -1.51 1.Ra1 Qd7 (56.084) 138

4.00 0:00 -1.38 1.h6 b3 (57.108) 140

4.00 0:00 -1.25 1.Nxd6 Nexd6 2.Qxb4 c5 3.Bxc5 Nxc5
4.Qxc5 (59.190) 145

4.00 0:00 -1.21 1.c4 Bxc4 2.h6 Qc7 (64.618) 153

4.00 0:00 -0.76 1.g6+ Kg8 2.h6 fxg6 3.h7+ Kh8 (75.219) 172

4.00 0:00 -0.60 1.Rh4 Kg8 2.h6 Bc7 3.hxg7 Qxd2+
4.Bxd2 Nxg7 5.Bxb4 Nxf5 6.exf5 (80.000) 176

5.00 0:00 -0.95 1.Rh4 b3 2.N5d4 (92.184) 196

5.00 0:00 -0.92 1.g6+ Kg8 2.gxf7+ Rxf7 3.h6 g5 (98.767) 204

5.00 0:00 -0.79 1.c4 b3 2.c5 Bc7 3.Rh3 (137.893) 245

5.00 0:00 -0.59 1.Nxd6 Qxd6 2.Qxd6 Nexd6 3.b3 (154.825) 261

5.00 0:00 -0.56 1.h6 g6 2.Nxd6 Qxd6 3.Qxd6 Nexd6
4.Nxe5 Rfe8 (158.827) 267

6.00 0:00 -0.34 1.h6 g6 2.Nxd6 Qxd6 3.Qxd6 Nexd6
4.Bd4 (217.946) 303

7.01 0:01 -0.30 1.h6 g6 2.Nxd6 Qxd6 3.Qxd6 Nexd6
4.Ra1 (369.851) 364

7.03 0:01 -0.24 1.g6+ fxg6 2.Ng5+ Kg8 3.hxg6 Bc4
4.b3 Qb6 (410.067) 375

8.01 0:01 +0.17 1.g6+ fxg6 2.Ng5+ Kg8 3.hxg6 Bc4
4.Rb1 (611.110) 416

9.01 0:02 +0.66 1.g6+ Kg8 2.Ng5 Bc4 3.b3 Be6 4.gxf7+ Bxf7
5.h6 g6 6.Nf3 (1.147.406) 467

10.01 0:02 +0.36 1.g6+ Kg8 2.Ng5 Bc4 3.b3 f6 4.h6 fxg5
5.Bxg5 Qc8 6.h7+ Kh8 7.bxc4 Rxf5
8.exf5 Qxf5 (1.368.404) 481

11.01 0:03 +0.36 1.g6+ Kg8 2.Ng5 Bc4 3.b3 f6 4.h6 fxg5
5.Bxg5 Qc8 6.h7+ Kh8 7.bxc4 Rxf5
8.exf5 Qxf5 (1.722.738) 496

12.01 0:04 +0.64 1.g6+ Kg8 2.Ng5 Bc4 3.b3 f6 4.bxc4 fxg5
5.h6 Qc8 6.c5 Bxc5 7.Bxc5 Rxf5
8.exf5 Nxc5 9.Qxb4 Na6 (2.153.152) 508

13.01 0:05 +0.66 1.g6+ Kg8 2.Ng5 Bc4 3.b3 f6 4.h6 fxg5
5.bxc4 Rxf5 6.exf5 Qf6 7.Rc1 (2.586.754) 515

14.01 0:06 +0.50-- 1.g6+ Kg8 (3.077.701) 492

14.01 0:07 +0.33-- 1.g6+ Kg8 (3.661.133) 498

14.01 0:08 +0.52 1.g6+ Kg8 2.Ng5 Bc4 3.b3 f6 4.h6 fxg5
5.bxc4 Rxf5 6.exf5 Qf6 7.c5 Nxc5
8.h7+ Kh8 9.Qxb4 Nd3+ (4.361.096) 508

15.01 0:09 +0.84++ 1.g6+ Kg8 (4.897.342) 513

15.01 0:09 +1.01++ 1.g6+ Kg8 (4.994.897) 514

15.01 0:09 +0.44 1.g6+ Kg8 2.Ng5 Bc4 3.b3 f6 4.h6 fxg5
5.bxc4 Rxf5 6.exf5 gxh6 7.Rxh6 Qf6
8.Kf1 Qxf5 9.Bxg5 Nc5 (5.104.078) 516

16.01 0:12 +0.75 1.g6+ Kg8 2.Ng5 Bc4 3.b3 f6 4.bxc4 fxg5
5.h6 Rxf5 6.exf5 gxh6 7.Rxh6 Qf6
8.Bxg5 c5 (6.651.635) 512

17.01 0:24 +0.42 1.g6+ Kg8 2.Ng5 Bc4 3.b3 Be6 4.gxf7+ Bxf7
5.h6 g6 6.h7+ Kh8 7.Nh6 Qe7 8.Nhxf7+ Rxf7
9.Nxf7+ Qxf7 10.Qe2 Ra7 (12.692.142) 522

18.01 1:03 +1.14 1.g6+ Kg8 2.Ng5 Qf6 3.Nxf7 Rxf7
4.gxf7+ Qxf7 5.f3 b3 6.Qg2 Kh7
7.cxb3 Bc5 8.Bxc5 Nxc5 9.Qg6+ Qxg6
10.hxg6+ Kxg6 11.Rb1 (32.535.005) 516

19.01 1:16 +0.86 1.g6+ Kg8 2.Ng5 Qf6 3.Nxf7 Rxf7
4.gxf7+ Qxf7 (39.767.013) 517


19.10 2:07 +2.92++ 1.Bb6 Qxb6 (66.141.495) 517

19.10 2:14 +3.81++ 1.Bb6 Qxb6 (69.845.115) 517

19.10 3:01 +5.59++ 1.Bb6 Qxb6 (94.301.323) 520

19.10 3:27 +5.05 1.Bb6 Bc7 2.Qxb4 Ned6 3.g6+ Kg8 4.h6 Bxb6
5.hxg7 Nxf5 6.gxf8Q+ Qxf8 7.Qxb6 Nd4
8.Nxd4 exd4 9.gxf7+ Qxf7 10.Qxc6 d3
11.cxd3 Rf8 12.Rg1+ Kh7 13.Rh1+ Kg8
14.f4 (108.094.483) 521

20.01 3:34 +5.63 1.Bb6 Bc7 2.Qxb4 Ned6 3.g6+ Kg8 4.h6 Bxb6
5.hxg7 Nxf5 6.gxf8Q+ Qxf8 7.Qxb6 Nfd6
8.Nxe5 Qg7 9.gxf7+ Nxf7 (112.050.901) 522

21.01 4:50 +5.88 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Qxd6
4.Nxd6 Nexd6 5.Nxe5 Rae8 6.g6+ Kg8
7.gxf7+ Rxf7 8.Qd4 Rf4 9.f3 Rxf3
10.h6 Rf6 11.hxg7 Re7 12.b3 Ne8 (152.663.547) 524

22.01 6:31 +6.35 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Qxd6
4.Nxd6 Nexd6 5.Nxe5 Bb5 6.g6+ Kg8
7.Rh4 c5 8.Qb3 c4 9.gxf7+ Rxf7
10.Qg3 Ra1+ 11.Kd2 (205.140.087) 523

23.01 8:17 +6.00 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Qxd6
4.Nxd6 Nexd6 5.Nxe5 Bb5 6.g6+ Kg8
7.Rh4 c5 8.Qb3 c4 9.gxf7+ Rxf7
10.Qg3 Ra1+ 11.Kd2 (260.085.349) 522

24.01 11:09 +6.61 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Qxd6
4.Nxd6 Nbxd6 5.b3 Bb5 6.Kd2 f6 7.Bc5 fxg5
8.Nxg5+ Kg8 9.c4 Ba6 10.Bxd6 Nxd6
11.h6 Rf6 12.hxg7 Kxg7 13.Qa5 Nf7
14.Nxf7 (350.403.851) 523

25.01 16:27 +6.54 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Qxd6
4.Nxd6 Nbxd6 5.b3 Bb5 6.Kd2 f6 7.Bc5 fxg5
8.Nxg5+ Kg8 9.c4 Ba6 10.Bxd6 Nxd6
11.h6 Rf6 12.hxg7 Bb7 13.Ke3 Rg6
14.Rh8+ (520.062.238) 526

26.01 30:18 +6.74 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Qxd6
4.Nxd6 Nexd6 5.Nxe5 Kg8 6.Nxc6 Bc4
7.Na7 Rfe8 8.f3 Nxe4 9.fxe4 Rxe4+
10.Kd2 Bd5 11.Qb5 Re5 12.Nc6 (968.526.013) 532

27.01 58:26 +6.50-- 1.Bb6 Bc7 (1.878.764.706) 535

27.01 101:23 +6.26-- 1.Bb6 Bc7 (3.279.044.664) 539

27.01 129:31 +7.12 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Qxd6
4.Nxd6 Nexd6 5.Nxe5 Kg8 6.Nxc6 Bc4
7.Na7 Rfe8 8.f3 Nxe4 9.fxe4 Rxe4+
10.Kd2 Bd5 (4.181.151.639) 537

28.01 152:21 +6.86 1.Bb6 Bc7 2.Qxb4 Bd6 3.Rxd6 Qxd6
4.Nxd6 Nexd6 5.Nxe5 Bb5 6.g6+ Kg8
7.Rh4 c5 8.Bxc5 Ra1+ 9.Kd2 Ra4
10.gxf7+ Rxf7 11.h6 g5 12.h7+ Rxh7
13.Qb3+ Kg7 14.Rxh7+ (4.898.957.021) 535


best move: Be3-b6 time: 172:33.984 min n/s: 538.379 nodes: 5.574.354.424
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