# Chezzz

**Chezzz**,

a chess engine by David Rasmussen, which was according to Leo Dijksman ^{[2]} and Frank Quisinsky ^{[3]} the 100th WinBoard engine. Chezzz played seven consecutive CCT Tournaments, starting in 2001 with the CCT3, until 2007 the CCT9.

## Contents

# Thesis Program

Presumably, Chezzz is similar to Rasmussen's thesis program described in detail in his 2004 Master's thesis ^{[4]} - concerning board representation and the serial search, while the evaluation of the thesis program is very rudimentary relying on material and piece-square tables only - C++ source code given in Appendix B. Interesting for C++ programmers is Appendix B.12 enums.h with DeclareEnumTricks ^{[5]} and forall Macros.

## Bitboards

Bitboards are the basic data structure, rotated bitboards with four line arrays indexed by square and 8-bit line occupancy determine sliding piece attacks. BitScan is done with a 16-bit lookup table and up to four conditional cases. The thesis program applies a population count in the Brian Kernighan's way, while Chezzz uses the MMX Swar Popcount as introduced in AMD *Athlon™ Processor x86 Code Optimization* ^{[6]}, with compatibility issues concerning the 3DNow! psadbw - Packed sum of absolute byte differences - instruction ^{[7]}.

## Search

The thesis program features a YBWC parallel search, sharing the lockless hash table as proposed by Robert Hyatt and Tim Mann ^{[8]}. The iterative deepening framework applies aspiration windows of ±1/3 pawn value, PVS with adaptive null move pruning, and history and killer heuristic with thread local memory. The SEE swap algorithm, borrowed from Crafty, is used in move ordering and to prune losing captures in quiescence search. The search is extended in case of checks, recaptures, and pawn moves to the 7th rank, and single replies.

# Selected Games

## CCT5

[Event "CCT5"] [Site "Internet Chess Club"] [Date "2003.01.18"] [Round "-"] [White "Chezzz"] [Black "Hossa"] [Result "0-1"] 1.e4 c5 2.Nf3 Nc6 3.Nc3 e5 4.Bc4 Be7 5.d3 Nf6 6.Nd2 d6 7.Nf1 Bg4 8.f3 Be6 9.Ne3 Bxc4 10.dxc4 Nd4 11.Qd3 O-O 12.O-O Qd7 13.Ncd5 Nxd5 14.Nxd5 f5 15.Be3 fxe4 16.fxe4 Bh4 17.c3 Ne6 18.Rad1 Rxf1+ 19.Rxf1 Rf8 20.Rxf8+ Kxf8 21.Qe2 Qf7 22.Qg4 Bd8 23.Bd2 h5 24.Qh3 Ke8 25.b4 b6 26.a3 Kd7 27.Qg3 Be7 28.a4 Bd8 29.Be3 Qe8 30.a5 bxa5 31.bxc5 Qf7 32.cxd6 Kxd6 33.Qe1 Kc6 34.Qb1 Qb7 35.Qd1 h4 36.Bf2 a6 37.Ne3 Kc7 38.Qd5 Qxd5 39.exd5 Nf4 40.Kf1 a4 41.Nc2 Kd6 42.Ba7 g5 43.g3 hxg3 44.hxg3 Nh5 45.Kf2 Nf6 46.Ke2 Ne4 47.Ke3 Nf6 48.Nb4 a3 49.Kd3 Nd7 50.Be3 a5 51.Na2 Nc5+ 52.Kc2 Na4 53.Kb3 Nb2 54.Bg1 g4 55.Be3 Bc7 56.Bg5 e4 57.Bf4+ Kd7 58.Bxc7 Kxc7 59.c5 Nd3 60.Kc4 Nxc5 61.Kd4 Kb6 62.Ke3 Nb7 63.Kd4 e3 64.Kxe3 Kc5 65.Kd3 Kxd5 66.c4+ Kc5 67.Nc1 Kb4 68.Kc2 Nc5 69.Kb1 Kxc4 70.Ne2 Ne4 71.Kc2 a4 72.Kc1 Nc3 73.Nf4 Kb3 74.Ne6 a2 75.Nd4+ Kc4 76.Nc2 a3 77.Na1 Ne2+ 78.Kd2 Nxg3 79.Ke1 Kc3 80.Kd1 Kb2 81.Nc2 a1=Q+ 82.Nxa1 Kxa1 83.Kc2 Nf5 84.Kc1 g3 85.Kd2 g2 86.Kd3 g1=Q 87.Ke4 Qd4+ 88.Kxf5 Kb1 89.Ke6 a2 90.Kf5 a1=Q 91.Ke6 Qaa7 92.Kf5 Qag7 93.Ke6 Qgd7# 0-1

## CCT7

[Event "CCT7"] [Site "Internet Chess Club"] [Date "2005.02.12"] [Round "5"] [White "Quark"] [Black "Chezzz"] [Result "0-1"] 1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Bd3 Nc6 6.Nxc6 dxc6 7.O-O e5 8.Nd2 Be6 9.Qf3 Qc7 10.Bc4 Qe7 11.Qb3 Bxc4 12.Nxc4 b5 13.Nb6 Rb8 14.Be3 Qc7 15.a4 Rxb6 16.Bxb6 Qxb6 17.Qc3 Bd6 18.Rfd1 Bb8 19.axb5 axb5 20.Qg3 g6 21.Qh4 Qc7 22.Rd3 Qc8 23.Ra8 Qc7 24.Rc3 Kf8 25.Ra6 c5 26.Rd3 Kg7 27.Rd8 h6 28.Re8 Qb7 29.Ra1 Bc7 30.Rea8 g5 31.Qh3 Qxe4 32.Qc8 Bd6 33.Qa6 Be7 34.Qxb5 Qxc2 35.Qb8 e4 36.h3 c4 37.g3 Qd2 38.Qe5+ Bf6 39.Qe8 e3 40.fxe3 Be7 41.Rf1 Qxe3+ 42.Kg2 Qe4+ 43.Kg1 f6 44.Rf2 h5 45.Ra7 Qe3 46.Qd7 Qxg3+ 47.Rg2 Qe3+ 48.Rf2 Kh6 49.Qc7 Qxh3 50.Ra6 Qg4+ 51.Kh2 Qd4 52.Rg2 Bc5 53.Qg3 Kg7 54.Kh1 Nh6 55.Ra1 Ng4 56.Re1 Kg6 57.Qf3 Rb8 58.Qe4+ Qxe4 59.Rxe4 Nf2+ 60.Rxf2 Bxf2 61.Re2 Bd4 62.Re4 Rd8 0-1

# See also

# Publications

- David Rasmussen (
**2004**).*Parallel Chess Searching and Bitboards.*Master's thesis, pdf

# Forum Posts

## 2001

- Congrats to David Rasmussen by Leo Dijksman, Winboard Forum, May 23, 2001
- *** 100 *** Chezzz 0.88 by David Rasmussen (Denmark) is available by Frank Quisinsky, Winboard Forum, May 23, 2001

## 2002

- Position from Sjeng - Chezzz by David Rasmussen, CCC, January 21, 2002 » Sjeng
- Quiescence Explosion by David Rasmussen, CCC, November 26, 2002

## 2003

- Chezzz-Postmodernist - What plan? by David Rasmussen, CCC, January 15, 2003 » PostModernist
- Chezzz - Hossa CCT5 by David Rasmussen, CCC, January 18, 2003 » CCT5, Hossa

- Test Position : Chezzz - Hossa by David Rasmussen, CCC, January 19, 2003

- Chezzz @ CCT5 - First Day by David Rasmussen, CCC, January 25, 2003 » CCT5
- Chezzz 1.0b released by David Rasmussen, CCC, February 03, 2003
- Chezzz 1.0.1 released by David Rasmussen, CCC, February 04, 2003
- Re: Chezzz 1.0.1 - problem solved - for David Rasmussen by David Rasmussen, CCC, February 05, 2003 » Population Count, MMX
- Chezzz's proudest moment (?) by Darren, Winboard Forum, February 09, 2003 » CCT5
- Chezzz 1.0.2 released by David Rasmussen, Winboard Forum, February 11, 2003
- Chezzz and EGTB's by Gábor Szõts, Winboard Forum, February 12, 2003
- Example Chezzz cfg file by David Rasmussen, Winboard Forum, February 14, 2003
- Chezzz 1.0.3 released and books tweaked by David Rasmussen, Winboard Forum, February 20, 2003
- chezzz by Andy, Winboard Forum, February 27, 2003
- New books for Chezzz by David Rasmussen, CCC, February 27, 2003
- Terra - Chezzz ... Nice Game by David Rasmussen, Winboard Forum, June 04, 2003 » Terra

## 2004 ...

- Find The Bug - C / C++ by David Rasmussen, bytes.com, July 22, 2005

# External Links

- Index of /chess/engines/Norbert's collection/Chezzz (Compilation) by Norbert Raimund Leisner, hosted by Kirill Kryukov
- Chezzz 1.0.3 in CCRL 40/40

# References

- ↑ Chezzz Playazzz | Petya Popovyanska | Flickr
- ↑ Congrats to David Rasmussen by Leo Dijksman, Winboard Forum, May 23, 2001
- ↑ *** 100 *** Chezzz 0.88 by David Rasmussen (Denmark) is available by Frank Quisinsky, Winboard Forum, May 23, 2001
- ↑ David Rasmussen (
**2004**).*Parallel Chess Searching and Bitboards.*Master's thesis, pdf - ↑ Find The Bug - C / C++ by David Rasmussen, bytes.com, July 22, 2005
- ↑ AMD Athlon™ Processor x86 Code Optimization (pdf) Efficient 64-Bit Population Count MMX Version Page 130
- ↑ Re: Chezzz 1.0.1 - problem solved - for David Rasmussen by David Rasmussen, CCC, February 05, 2003
- ↑ Robert Hyatt, Tim Mann (
**2002**).*A lock-less transposition table implementation for parallel search chess engines*. ICGA Journal, Vol. 25, No. 1 - ↑ Chezzz - Hossa CCT5 by David Rasmussen, CCC, January 18, 2003