JetChess is an implementation of a fast move generator which I developed as a starting point for a chess engine.
For testing reasons, I implemented a number of common calculations and combined it with a small graphical interface.
Because at the moment I don't have the time to develop a chess engine,
and because of some interesting achieved results (speed, position count and mate search),
I decided to make an intermediate release and publish it on this website.
Comments and bug reports are welcome.
Thomas Zipproth
Operation modes:
- Move path count (number of different games after n half moves, commonly called "perft - divide")
- Position count (number of different positions after n half moves, including castling and en passant rights)
- Mate search (for chess problems)
- Benchmark (uses the mate search)
Results
1.) Position count for the initial position
The position count for the initial position (including castling and en passant rights) was calculated up to 8 half moves.
Positions, in which an en passant capture is illegal, because the pawn is pinned,
can optional be considered as identical to the same position without en passant possibility.
The values for this count are displayed in the third column.
| 1 |
20 |
20 |
| 2 |
400 |
400 |
| 3 |
5.362 |
5.362 |
| 4 |
72.078 |
72.078 |
| 5 |
822.518 |
822.518 |
| 6 |
9.417.683 |
9.417.681 |
| 7 |
96.400.335 |
96.400.068 |
| 8 |
988.192.872 |
988.187.354 |
2.) Perft count and speed for the initial position on Athlon64® 3700+
| 1 |
20 |
0 ms |
| 2 |
400 |
0 ms |
| 3 |
8.902 |
0 ms |
| 4 |
197.281 |
3 ms |
| 5 |
4.865.609 |
44 ms |
| 6 |
119.060.324 |
600 ms |
| 7 |
3.195.901.860 |
7.2s |
| 8 |
84.998.978.956 |
98s |
| 9 |
2.439.530.234.167 |
24m 36s |
| 10 |
69.352.859.712.417 |
5h 47m 48s |
3.) Mate search
The mate search should be reasonable fast and perhaps in the range of the fastest
existing mate search programs for chess problems. (For mates up to 8 moves).
It is a "chess problem mate search", which means to deliver the exact result for a given depth for every move.
4.) Benchmark, some results:
- 10.00s Athlon® 3700+ (2.2 GHz), FSB 400
- 10.12s Pentium® 4 D 805 (3,8 GHz, 1 Core), FSB 760
- 10.74s Pentium® M (2.0 GHz), FSB 400
- 13.43s Pentium® 4 520 (2.8 GHz) FSB 800
- 13.52s Athlon® 2400+ (2.0 GHz), FSB 267
History
This move generator was developed in 1995 as a basis for a chess engine, which was never finished.
Because computers were not so fast in these times, and the move generator played a greater role than today,
it has been made with the goal to be as fast as possible. This goal was reached and in 1995 it was the fastest
existing move generator (and perhaps also today).
Eleven years later I found my sourcecode and because I still don't have the time to develop a chess engine,
I decided to publish an intermediate result.
Possible future development
- Distributed perft and postions calculation
- Multiprocessor Version
- 64bit Version
- chess engine
Copyright © 2006 Thomas Zipproth. Last change 07.11.2006.