When a piece captures, a capture flag is set on that piece. In the quiescence I allow QUIES_MAX free captures (so any piece may capture any other piece), but after these QUIES_MAX free captures only captures to pieces with the capture flag set are allowed. In this way the quiescence search always terminates and many exchanges like 'I capture your queen, you capture my queen etc.' are evaluated correctly. Higher QUIES_MAX values give better results, but also makes the program slower, so there is a trade off here. In ZZZZZZ the quiescence search hardly takes time: the quiescence search usually already terminates after the first eval() call (depth = 0) (an evaluation you would have to do any way) and only about 10% of the eval() calls come from deeper inner nodes. I also experimented with null moves in the quiescence search, but that did not help much.
#define QUIES_MAX 2int quies(int depth, int alpha, int beta){int best, temp;
best = eval();if(best >= beta)return best ;for(all your pieces){if((depth >= QUIES_MAX) and (no capture flag set on your piece))continue;for(all my ways to capture your piece){
temp =-quies(depth +1, -beta, -max(alpha, best));
best = max(temp, best);if(best >= beta)return best;}}return best ;}
Table of Contents
Zzzzzz, (ZZZZZZ)
an open source chess program under the GNU GPL by Gijsbert Wiesenekker written in C, and Version 5 (1998) in Pascal with a Delphi GUI for Windows platforms [1] . A Chess Engine Communication Protocol compliant Zzzzzz 3.5.1 for Windows/Linux 32 is available from Jim Ablett's site.
Zzzzzz had its debut at the DOCCC 1991, and further played many Dutch Open Computer Chess Championships and International CSVN Tournaments, as well as the IPCCC 1994 and Aegon 1997. Already at the DOCCC 1993, Zzzzzz 3.0 was able to play on five machines in parallel [2] . The parallel alpha-beta routine was built around a public domain massively parallel computing environment, PVM. Meanwhile version 3.4 has moved to version 6, which still is command-line driven, but has evolved using bitboards, static exchange evaluation, null move, and extensions. It can search in parallel on two or three nodes [3] with a shared hash table.
GUI
Quiescence Search
In Zzzzzz 3 the quiescence search looked like this, as explained by Gijsbert Wiesenekker in 1994 [5] :Games
Clash of the Consonants
IPCCC 1994, round 7, Zzzzzz - Xxxx [6]DOCCC 2007
DOCCC 2007, round 7, Zzzzzz - Deep Junior [7]Forum Posts
1993
1994
1995 ...
2000 ...
psychological warfare by Georg von Zimmermann, CCC, March 17, 2001
External Links
Downloads
References
What links here?
Up one Level