1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
|
What is Sjeng ?
---------------
Sjeng is a chessprogram that plays many variants.
In addition to that, it can also play normal chess
quite well and is fully compatible with the standard
XBoard/WinBoard protocol (version 1 and 2). Sjeng
also supports some broken WinBoard implementations,
such as the one present in the ChessBase/Fritz WinBoard
adapter.
Technically, Sjeng is a highly advanced alpha-beta searcher,
using modern techniques like history and killer moves,
transposition tables, SEE move ordering and pruning, and
search enhancements like selective extensions, Aspiration
Principal Variation Search, Adaptive nullmove pruning,
Extended Futility Pruning and Limited Razoring. Sjeng can
use an opening book and learns from the games it plays.
In it's suicide and losers mode, Sjeng use proof-number
searches to quickly find forced wins. Sjeng plays at the
same level that the best humans are capable of.
On 14th of October 2000, Sjeng won it's first title
by becoming the World Computer Crazyhouse Chess Champion.
On December 31th 2000, Sjeng became the first computer
program to reach the #1 spot on the crazyhouse rating list
on the Free Internet Chess Server. It had been #1 on the
Internet Chess Club before.
Early 2001 Sjeng became the #1 losers/giveaway player
on the Internet Chess Club.
What variants are supported ?
-----------------------------
Sjeng currently plays standard chess, crazyhouse, bughouse,
suicide (aka giveaway or anti-chess) and losers. It can also
play variants which have the same rules as normal chess, but
a different starting position.
How do I get it to work ?
-------------------------
Building it
-----------
GNU/Linux, FreeBSD, other Un*x variants:
----------------------------------------
Building Sjeng should be as simple as:
./configure
make
(su to root if needed)
make install
If you notice Sjeng is only reporting time in full second
increments, edit config.h and change #define HAVE_FTIME
into #undef HAVE_FTIME.
Windows
-------
I have succesfully compiled Sjeng with Microsoft Visual C++.
Other compilers are not tested, but may also work.
The easiest way is to locate a Windows port of Sjeng's
sources, which you can compile out-of-the-box. If those
are not available, follow these instructions:
You need to find a Windows port of the GDBM library.
There are several (free) ones available on the internet.
You will have to create a config.h file which contains
#define HAVE_SYS_TIMEB_H
#define HAVE_FTIME
#define VERSION "11.2"
You may have to define _WIN32 also, if your compiler
doesn't already do so.
You also need an implementation of the strcasecmp
function. An implementation is available in the file
strcasec.c in the DJGPP distribution.
Alternatively you can use the Cygnus utilities. I have
never used them myself so I cannot help you there, but
I have had reports from users which successfully built
Sjeng with it.
The opening books
-----------------
Sjeng uses two kind of books: .opn books and binary books
The .opn books are intended to be created manually, and
are ideal for getting Sjeng to play your favorite openings.
Some examples are in the books directory.
To use a .opn book, just copy it to the same directory
where you are running Sjeng from. Sjeng will always look
in the .opn book first and will never apply learning to
it.
The binary books are created automatically from PGN databases,
by a built-in bookbuilder.
To use it, just start Sjeng and enter 'book'. To generate
a crazyhouse/bughouse book, first type 'variant crazyhouse',
then type 'book'. ('losers' and 'suicide' are also supported)
Be sure to make the keycache large enough or the book-generation
will be slow and you will end up with very large files. One
byte in the keycache is enough for one position. The keycache
is stored in RAM, so do not make it bigger than the actual
amount of RAM you have.
You need about 12 bytes diskspace per position that will be
stored.
You must use a pure PGN database. PGN derivates like BPGN
are not (yet) supported, nor is the psuedo-PGN that some
other programs output.
I recommend running your PGN database through the 'Extract'
program by David Barnes first. It has options to strip
variantions, comments and NAG's and to suppress duplicates
which will significantly speed up the bookbuilding process,
as well as getting rid of any psuedo-SAN.
A PGN database of some high-quality crazyhouse games is
available at
ftp://sjeng.sourceforge.net/pub/sjeng/zhbook.pgn
Getting an interface
--------------------
You can start Sjeng now by typing 'sjeng', but you will probably
find the text-based interface unpleasant.
The recommended interface for playing standard chess with Sjeng
is WinBoard/XBoard, by Tim Mann.
http://www.tim-mann.org/xboard.html
You will need to start WinBoard/xboard with the -variant
option to play bughouse, crazyhouse, suicide or losers. If
you need more help with WinBoard/xboard read its documentation.
If you want to let Sjeng play on a chess server, be sure to
read zippy.README
Zon Juan Jan wrote a Windows interface for crazyhouse-playing
programs that can be used with Sjeng. Go to
http://bughouse.net
and look in the downloads section. The program is called
Zhouse Challenger. It works nicely and I can recommend
it a lot! There is an alternate download at:
http://www.d2d4.de/download/zchall-sfx.exe
EBoard is a chess interface for POSIX systems (GNU/Linux, FreeBSD,
etc.) based on the GTK+ GUI toolkit. It is available on
http://eboard.sourceforge.net/ and has extensive support for Sjeng.
Generating endgame databases
-------------------------
Sjeng support endgame databases for the suicide
variant. You can generate them as follows:
1) Make a subdirectory named 'stb' in Sjeng's
directory
2) Start Sjeng form the command line and issue
the command 'buildegtb'
This will take an hour or so, depending on the
speed of your computer.
Tuning Sjeng
------------
A great deal Sjeng's workings can be customized without
recompiling it. You should take a look at sjeng.rc and
adjust the parameters to your likings. Especially the
first three are imporant because they control how much
memory Sjeng will use for transposition tables and caches.
If those are set too big for your RAM, Sjeng will crash.
Benchmarking
------------
As a little test of your computer's speed, you can start
Sjeng and give the 'speed' command. This will run a little
benchmark of the most commonly-used functions in Sjeng.
Running testsuites
------------------
Sjeng can automatically run testsuites by use of the 'test'
command. Input data is expected to be in EPD format with
either a 'best move' (bm) or 'avoid move' (am) tag.
Some testsuites are included in the 'tests' directory of the
Sjeng distribution.
Getting more info
-----------------
For more info about Sjeng, you can visit the homepage
http://www.sjeng.org/
If you are in need of info about Sjeng's internal
workings, send me a mail at
gcp@sjeng.org
Reporting bugs
--------------
If you spot a bug, or Sjeng crashes on you, please
send email to
gcp@sjeng.org
Please try to provide an accurate description of the
problem and, if possible, how to reproduce it. Starting
XBoard/WinBoard with the -debug option will produce debug
output (either on screen or in a winboard.debug file) that
can help a lot in tracking down the problem.
Copying/Distribution
--------------------
Sjeng is Free Software and is licensed under the GNU General
Public License. For more details see the file COPYING that
comes with Sjeng.
If this file is missing, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Sjeng should have come with source code, or you should have
been given the possibility to obtain it for a charge no more
than the cost of physically performing the source distribution.
If not, please contact gcp@sjeng.org.
Sjeng includes tablebase accessing code written by Andrew Kadatch
and Eugene Nalimov. This code is contained in the files tbindex.cpp
and tbdecode.h and is copyrighted by them, all rights reserved.
This code does _not_ fall under the GPL. You are hereby given the
additional right to compile and link Sjeng with this code, as well
as to distribute the resulting executable and code under the
conditions of the GPL, except for the files tbindex.cpp and
tbdecode.h, which do not fall under the GPL, but may also be
distributed together with Sjeng.
The author regrets having to include this non-free code with
Sjeng, but no free replacement of the same quality is availble
yet.
What is bughouse ?
------------------
Bughouse is a form of chess which is played with 2 teams,
each consisting of 2 players. Each player plays his opponent
on a seperate board. If a piece is captured, the capturing
player can pass it on to his partner, who can then drop the
piece into his game and use it.
If you have never played bughouse before, you are really
missing out on something. Try it, you'll like it.
for a more complete description of the rules:
http://matador.unige.ch/nabla/Bug/rules.html
What is crazyhouse ?
--------------------
Crazyhouse is similar to bughouse, but is played
with only 2 players, on 1 board.
What is suicide/giveaway/anti-chess ?
-------------------------------------
Suicide is a form of chess where the goal is to
lose all your pieces. Your king acts like a normal
piece and can be captured, and you can promote
pawns to a king. If you can capture, you must.
Suicide is sometimes referred to as giveaway or anti-chess,
although there are minor differences between variants.
In suicide, castling is not allowed, but in giveaway
it is. If a player is stalemated, he loses in giveaway,
but in suicide he wins if he has less material than his
opponent.
What is losers ?
----------------
Losers is similar to suicide with the exception
that the king may not be captured, you cannot
promote pawns to kings, and if you are checkmated
you win.
Where can I play bughouse ?
----------------------------
The most common place to play bughouse is the Free Internet
Chess Server (FICS). Most important chess servers also offer
it, like the Internet Chess Club.
http://www.freechess.org
http://www.chessclub.com
Or even better, gather a few friends, 2 chessboards, 2 clocks,
some beer, and have fun beating each other ;)
-- last revised 2001-12-27 -- gcp@sjeng.org --
|