Changes

Jump to: navigation, search

Zzzzzz

12,285 bytes added, 13:55, 30 December 2018
Created page with "'''Home * Engines * Zzzzzz''' border|right|thumb| Zzzzzz 5 [[GUI written in Delphi <ref>Image from former ZZZZZZ - Homepage of Gij..."
'''[[Main Page|Home]] * [[Engines]] * Zzzzzz'''

[[FILE:Zzzzzz.JPG|border|right|thumb| Zzzzzz 5 [[GUI]] written in [[Delphi]] <ref>Image from former ZZZZZZ - Homepage of [[Gijsbert Wiesenekker]]</ref> ]]

'''Zzzzzz''', (ZZZZZZ)<br/>
an [[:Category:Open Source|open source chess program]] under the [[Free Software Foundation#GPL|GNU GPL]] by [[Gijsbert Wiesenekker]] written in [[C]], and Version '''5''' (1998) in [[Pascal]] with a [[Delphi]] [[GUI]] for [[Windows]] platforms <ref>[http://groups.google.com/group/rec.games.chinese-chess/msg/e6d5902ce22d6a43 Re: Anyone know of a freeware chess game for Windows 95?] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rgcc]], November 09, 1998</ref>.
A [[Chess Engine Communication Protocol]] compliant Zzzzzz 3.5.1 for [[Windows]]/[[Linux|Linux 32]] is available from [[Jim Ablett|Jim Ablett's]] site. Zzzzzz had its debut at the [[DOCCC 1991]], and further played many [[Dutch Open Computer Chess Championship|Dutch Open Computer Chess Championships]] and [[International CSVN Tournament|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 Search|parallel]] <ref>[http://groups.google.com/group/rec.games.chess/browse_frm/thread/5f1c0623a1aba89b ZZZZZZ 3.0 plays in Dutch Comp. Chess Champ. 1993] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], November 15, 1993</ref>.
The parallel [[Alpha-Beta|alpha-beta]] routine was built around a public domain massively parallel computing environment, [https://en.wikipedia.org/wiki/Parallel_Virtual_Machine PVM]. Meanwhile version 3.4 has moved to version 6, which still is command-line driven, but has evolved using [[Bitboards|bitboards]], [[Static Exchange Evaluation|static exchange evaluation]], [[Null Move Pruning|null move]], and [[Extensions|extensions]].
It can search in parallel on two or three nodes with a [[Shared Hash Table|shared hash table]].
<span id="Quiescence"></span>
=Quiescence Search=
In Zzzzzz 3 the [[Quiescence Search|quiescence search]] looked like this, as explained by [[Gijsbert Wiesenekker]] in 1994 <ref>[http://groups.google.com/group/rec.games.chess/msg/87fcddab7c4c8ad4 Re: Efficient quiescence] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], January 22, 1994</ref> :
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|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 Move|null moves]] in the quiescence search, but that did not help much.
<pre>
#define QUIES_MAX 2

int 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 ;
}
</pre>
=Testing=
[[Gijsbert Wiesenekker]] on [[Evaluation Patterns|evaluation patterns]] and his [[Engine Testing|testing]] approach <ref>[http://laatste.info/bb3/viewtopic.php?t=2839#p86071 Re: Evaluation Function Fuss] by [[Gijsbert Wiesenekker]], [http://laatste.info/bb3/index.php World Draughts Forum], February 20, 2011</ref>:
I play test games against a very strong chess program ([[Rybka]]). Now most of the time Rybka would have played a different move than ZZZZZZ actually plays, but the difference between the scores is only small. Of course, as the game progresses the differences gradually build up to a real disadvantage. Analyzing the small differences was not very helpful, one of the reasons also being that in chess openings many moves are playable. However I noticed that in certain positions the (usually already positive) score of Rybka's position suddenly went up by more than half a pawn after the move ZZZZZZ played, and that in certain positions the score of the move Rybka suggested for ZZZZZZ was positive (so the score of Rybka's position after that move from ZZZZZZ would even have been negative), but the score of Rybka's position was positive by more than half a pawn after the move ZZZZZZ actually played. Analyzing these few positions greatly improved the evaluation of ZZZZZZ. However, this is not easy. Especially patterns that should be evaluated positive but are evaluated negative are hard to find, as positions containing these patterns are removed from the alpha-beta search and do not show up in the PV. Conversely, patterns that should be evaluated negative but are evaluated positive are easier to find, as positions containing these patterns show up in the PV.

=Games=
==Clash of the Consonants==
[[IPCCC 1994]], round 7, [[Zzzzzz]] - [[Xxxx]]
<pre>
[Event "IPCCC 1994"]
[Site "Paderborn"]
[Date "1994.10.01"]
[Round "7"]
[White "Zzzzzz"]
[Black "Xxxx"]
[Result "0-1"]

1.e4 c5 2.Nf3 Nc6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 e6 6.Ndb5 d6 7.Bf4 e5 8.Bg5 a6
9.Bxf6 gxf6 10.Na3 b5 11.Qd5 Bb7 12.Ne2 Bh6 13.Qd3 f5 14.Qh3 Qf6 15.Qxf5 Qxf5
16.exf5 d5 17.Rd1 O-O-O 18.c3 d4 19.cxd4 exd4 20.Rd3 Ne5 21.Rg3 d3 22.Ng1 Bf4
23.Rg7 Rde8 24.Kd1 b4 25.b3 bxa3 26.Nh3 Bh6 27.Rg3 Bd5 28.Bxd3 Rd8 29.Bxa6+ 0-1
</pre>

==DOCCC 2007==
[[DOCCC 2007]], round 7, [[Zzzzzz]] - [[Junior|Deep Junior]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=17429 Zzzzzz takes Junior to school] by [[Theo van der Storm]], [[CCC]], October 28, 2007</ref>
<pre>
[Event "DOCCC 2007"]
[Site "Leiden, NED"]
[Date "2007.10.28"]
[Round "7"]
[White "Zzzzzz"]
[Black "Deep Junior"]
[Result "1-0"]

1. d4 Nf6 2. c4 g6 3. Nc3 d5 4. Nf3 Bg7 5. Qb3 dxc4 6. Qxc4 O-O 7. e4 a6 8. Be2
b5 9. Qb3 c5 10. dxc5 Bb7 11. e5 Nfd7 12. Be3 Qc7 13. Nd5 Qa5+ 14. Kf1 Nxe5 15.
Nxe5 Bxe5 16. Nb6 Nc6 17. Nxa8 Rxa8 18. Rd1 Qc7 19. Qa3 Na5 20. Bd4 Bxd4 21.
Rxd4 Nc6 22. Rd2 e5 23. h4 Nd4 24. h5 a5 25. hxg6 fxg6 26. Qc3 Bd5 27. Kg1 Rf8
28. a3 Qe7 29. Rh3 a4 30. Re3 Qg5 31. Rg3 Qf6 32. Bd1 Rc8 33. Bg4 Rc7 34. Rd1
$2 Bc4 35. Qa5 Rxc5 36. Rc3 Qf8 37. Re1 h5 38. Bf3 Qd6 39. Be4 Kg7 40. Bd3 Kh6
41. Bxc4 bxc4 42. Qa8 Qf6 43. Qxa4 Rb5 44. Qd1 g5 45. Qd2 Qd8 46. Rd1 Qd5 47.
a4 Rb6 48. Kh1 Rf6 49. Re1 Rf4 50. Rh3 Kg6 51. a5 Rf6 52. Ra3 Rf4 53. Ree3 Kh6
54. Rh3 g4 55. Rhe3 h4 56. a6 h3 57. Rg3 hxg2+ 58. Rxg2 Qa8 59. Qe3 Kg6 60. Qh3
Nf5 61. a7 Kg5 62. Ra6 Nh4 63. f3 1-0
</pre>

=Forum Posts=
==1993==
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/b748dbeb7846f2d3 Processors needed for ZZZZZZ 3.0] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], November 12, 1993
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/5f1c0623a1aba89b ZZZZZZ 3.0 plays in Dutch Comp. Chess Champ. 1993] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], November 15, 1993
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/82476fe145d549d8 Beta sites needed for ZZZZZZ 4.0] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], November 16, 1993
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/110e5f9dada1a455 ZZZZZZ 3.1 beta available] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], November 23, 1993
==1994==
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/5e84fda6511e1755 zzzzzz 3.2 available] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], January 04, 1994
* [http://groups.google.com/group/rec.games.chess/msg/87fcddab7c4c8ad4 Re: Efficient quiescence] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], January 22, 1994
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/b3fb1c82e99a6a26 ZZZZZZ-3.3a1 available] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], February 23, 1994
* [http://groups.google.com/group/rec.games.chess/msg/4a5a3615e1480617 Re: Alpha-beta inconsistencies] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], February 25, 1994
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/ea24e377204184d zzzzzz-3.31 available] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], April 06, 1994
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/347a2304e8d73f60 WANTED: beta testers for Massively Parallel ZZZZZZ] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], July 08, 1994
* [http://groups.google.com/group/rec.games.chess/browse_frm/thread/a923e3f7b2b5dc7d ZZZZZZ 3.4 available] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], July 28, 1994
* [http://groups.google.com/group/rec.games.chess/msg/f5f509b5500d903f Re: Chess Program Too Slow -- Part II] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rec.games.chess]], December 01, 1994
==1995 ...==
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/86658f6c9b4c620e Need free MAC chess PICTS] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rgcc]], June 18, 1995
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/7bd49058f45f40f4 ZZZZZZ-0.03 for the MAC] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rgcc]], December 19, 1995
* [http://groups.google.com/group/rec.games.chinese-chess/msg/e6d5902ce22d6a43 Re: Anyone know of a freeware chess game for Windows 95?] by [[Gijsbert Wiesenekker]], [[Computer Chess Forums|rgcc]], November 09, 1998
==2000 ...==
* [https://www.stmintz.com/ccc/index.php?id=146106 ZZZZZZ by G. Wiesenekker] by [[Dann Corbit]], [[CCC]], December 23, 2000
* [https://www.stmintz.com/ccc/index.php?id=158937 Re: Delphi/Kylix Compiler] by [[Tony van Roon-Werten|Tony Werten]], [[CCC]], March 16, 2001
: [https://www.stmintz.com/ccc/index.php?id=159016 psychological warfare] by [[Georg von Zimmermann]], [[CCC]], March 17, 2001
* [http://www.talkchess.com/forum/viewtopic.php?t=17429 Zzzzzz takes Junior to school] by [[Theo van der Storm]], [[CCC]], October 28, 2007
* [http://www.talkchess.com/forum/viewtopic.php?t=20654 ZZZZZZ 3.4 with winboard support available] by [[Jim Ablett]], [[CCC]], April 13, 2008
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=7280 ZZZZZZ 3.4 with winboard support available] by [[Jim Ablett]], [[Computer Chess Forums|Winboard Forum]], April 14, 2008
==2010 ...==
* [http://laatste.info/bb3/viewtopic.php?t=2839#p86071 Re: Evaluation Function Fuss] by [[Gijsbert Wiesenekker]], [http://laatste.info/bb3/index.php World Draughts Forum], February 20, 2011

=External Links=
==Chess Engine==
* [http://kirr.homeunix.org/chess/engines/Jim%20Ablett/ZZZZZZ/ Index of /chess/engines/Jim Ablett/ZZZZZZ] compiled by [[Jim Ablett]], hosted by [[Kirill Kryukov]]
* [https://www.365chess.com/players/Comp_Zzzzzz Comp Zzzzzz chess games - 365Chess.com]
* [http://www.chessgames.com/perl/chessplayer?pid=107848 The chess games of Zzzzzz (Computer)] from [http://www.chessgames.com/index.html chessgames.com]
==Misc==
* [http://www.urbandictionary.com/define.php?term=zzzzzz Urban Dictionary: zzzzzz]
* [https://en.wikipedia.org/wiki/Gee_Whiz-z-z-z-z-z-z Gee Whiz-z-z-z-z-z-z from Wikipedia]
* [http://english.stackexchange.com/questions/27045/how-did-the-letter-z-become-to-be-associated-with-sleeping-snoring etymology - How did the letter Z become to be associated with sleeping/snoring? - English Language and Usage - Stack Exchange]

=References=
<references />
'''[[Engines|Up one Level]]'''
[[Category:Open Source]]
[[Category:GPL]]
[[Category:WinBoard]]
[[Category:XBoard]]

Navigation menu