From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Searcher

a Chess Engine Communication Protocol compliant, private [2] chess engine written by Frank Phillips. It is a bitboard engine, although it didn't used Rotated Bitboards for move generation [3]. In 2008, Frank implemented Magic Bitboards, and started to rewrite and improve his "ancient code" [4].

Tournament Play

Searcher played four consecutive, strong CCT Tournaments, the CCT3 (5th/32), CCT4 (6th/46), CCT5 (15th/45), and the CCT6 (12th/54).


Frank Phillips in his CCT3 report on Searcher [5]:

My chess program (before then there was a knight tour, connect4, simple othello and others to learn recursion and search etc) started as my expanded interpretation of TSCP, helped by articles on the internet (particularly Marsland's excellent summary of the anatomy of a chess program) [6] and of course by members of CCC and particulalry Bob Hyatt. Now its origins are unrecognisable, although mailbox is still used to precompute move tables - simply because I had already written that code.  The last major rewrite, two years or so ago introduced bitboards (because they looked interesting and Bob is always talking about them) to use mainly in evaluation. Move generation, king attacks, is a square attacked, SEE etc is a mixture of bitboards for the easy cases (knights, pawns, king) and offset precomputed arrays for the sliders. Like Dan Newman (I think), I also use bitboards to screen for _potential_ slider attacks etc to reduce work, but do not precompute the rank, file or diagonal states to give an index to a bitboard of the first square attacked.  Full and rotated bitboards implementation next time.  Maybe after an IQ transplant, or to get cheap mobility.  Move generation is not a massive drain in my program, so bitboards are more valuable for their other benefits.  Search is pretty standard Crafty type approach.  Tried and discarded Dark Thought type pruning.  But will try again after listening to Bruce on CCT3.  Extensions as recommended by Bob and limited as recommend by Bruce, although I still have recapture extension because it seems to help me and do a bit extra for passed pawns. Tested other and other variations of extensions without much impact.  All sorts of daft ideas. Trans/ref hash and hashing of basic pawn structure elements. Nalimov EGTBs (3 years to generate all 5 man on and off, on a variety of machines.  Thanks Eugene), primitive book learning and positional learning. The evaluation has become increasingly sophisticated (voluminous anyway) with time. Playing on the chess servers, even for a brief time, has certainly caused me to add stuff. 

Selected Games

CCT4, round 11, Searcher - Goliath-Blitz [7]

[Event "CCT4"]
[Site "Internet Chess Club"]
[Date "2002.01.27"]
[Round "11"]
[White "SearcherX"]
[Black "Goliath-Blitz"]
[Result "1-0"]

1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e5 7.Nb3 Be7 
8.O-O O-O 9.Be3 Be6 10.Nd5 Nxd5 11.exd5 Bf5 12.f4 e4 13.c3 Re8 14.Nd2 
h6 15.Bg4 Qc8 16.Bxf5 Qxf5 17.Qb3 Nd7 18.Qxb7 Reb8 19.Qc6 Rc8 20.Qa4 Nf6 
21.Bd4 Nxd5 22.Rae1 Bh4 23.g3 e3 24.Bxe3 Nxe3 25.Rxe3 Bf6 26.Ne4 Be7 
27.Nf2 Bf6 28.Rd1 Rab8 29.Re2 Rb6 30.Rdd2 g6 31.Qe4 Qd7 32.Qd5 Bg7 33.Ne4 
Rcc6 34.a4 Kh7 35.Rf2 f5 36.Nc5 Qc8 37.Ne6 Rb8 38.Rfe2 Qb7 39.Nxg7 Kxg7 
40.Re6 Rf8 41.Rxd6 Qb6+ 42.Kg2 Rxd6 43.Qxd6 Rf6 44.Qxb6 Rxb6 45.b4 Kf6 
46.Rd4 Ke6 47.Kf3 Rb7 48.Ke3 Rb8 49.Rc4 Kd6 50.Kd4 h5 51.Rc5 Kd7 52.Ra5 
Rb6 53.c4 Rxb4 54.Rxa6 Rb2 55.h4 Ra2 56.Rxg6 Ke7 57.Rg5 Ke6 58.Rxh5 Rxa4 
59.Rh6+ Ke7 60.h5 Ra3 61.Rg6 Ra2 1-0

Forum Posts

External Links

The Searchers (film) from Wikipedia


Up one level