Kiwi
Copyright (c) 1999-2004 by Alessandro Scotti.
http://www.ascotti.org/
Kiwi is a Winboard/XBoard
chess engine.
Version 0.1c
Sep 30, 2004. Just a bug fix for Win95/98 users: program would freeze
at startup.
Version 0.1b
Sep 19, 2004. First public release. Supports most of the Winboard
protocol. No
opening book yet. No configuration file. Logging always enabled, will
log info on "kiwi_log.txt": this file is overwritten every time the
engine starts.
History
Development on the Kiwi engine began in December 1999 but stopped
almost completely in January 2000. At the time I was also working on a
GUI written in Delphi, which I also had to abandon for reasons that I
can't remember now (though, statistically speaking, "too much work at
real job" shouldn't be too far from truth). Last August (2004) I was
stuck for technical reasons on my latest project Tickle
and decided to
wipe some dust from good ol' Kiwi. The newest build I could find in my
disk was from March 2000, which contained at least a few fixes with
respect to the January build, which was really buggy.
Most of the work I did during August and September 2004 was fixing the
bugs left (sometimes with help from the great folks at CCC) and implementing the
Winboard protocol. In fact, the engine is lacking some serious work in
important areas (e.g. how positions are evaluated), but for now playing
weak chess is a great improvement with respect to playing illegal
chess! :-)
Technical data
Kiwi's development was heavily influenced by Prof. Hyatt's engine
Crafty (I think it was
version 9.x at the time!), so I'm also using
bitboards, rotated bitboards and similar code for move generation and
move ordering. However, Kiwi is written in C++ and the design and
implementation is quite different from Crafty's. Besides, there are
several things I want to do differently now, but they'll have to wait
for some future release.
For searching, I'm using the MTD(f) algorithm as described by Aske
Plaat, and I've had my share of trouble getting it to work reliably
enough. The rest is pretty much standard stuff: futility pruning,
null-move (R=1), check and pawn push extensions, 2-slot per entry hash
table. I have a long "todo" list though, and many things are definitely
going to change...
WAC (new) results: 285/300 on 700 MHz Athlon at 5 seconds per move,
297/300 on 1.8 GHz P4 at 30 seconds per move. Kiwi nemesis: WAC 180.
System requirements
For Windows: any 32-bit version
of Windows, running on a Athlon or Pentium 3 CPU or better. Couldn't
test it on many platforms though. Engine requires about 36 Mb of free
RAM.
For Linux: same as Windows, but running Linux! :-)
License
Kiwi is Copyright (c) 1999-2004 by Alessandro Scotti.
This program is distributed "as-is"
in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. In no event will the author be held liable for any damage
arising from the use of this software.