forked from mprewarski/DiabloChessEngine
-
Notifications
You must be signed in to change notification settings - Fork 0
The Diablo Chess Engine
License
MIT, GPL-2.0 licenses found
Licenses found
MIT
LICENSE
GPL-2.0
COPYING
rwbc/DiabloChessEngine
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
What is Diablo? A chess engine Legal Stuff Diablo 0.3 Copyright 2005, Marcus Prewarski This program is free software. It may be copied or modified under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed without any warranties whatsoever. See the file COPYING included with the distribution for details of the GNU general public license. A Brief History Diablo is my second attempt at chess programming. The first DrunkenMaster started in December 2002 when I had a little free time and was curious how computers played chess. After finding some resources on the internet I hacked together the first version in a few weeks barely understanding the basic algorithms. At first I was happy to have created something that played chess. But with all the chess engine competitions happening, I wanted it to play better and better and it grew from there. By mid 2004 it had improved a lot but had also grown in a lot of ugly ways and I wasn't happy with the code or the data structures. In January 2005 I started working on Diablo which is an entirely new chess engine written from scratch. My design goals were to create a stronger engine and one that was easier to modify without creating more bugs than features and also one that I wouldn't be completely embarrassed to share the source code. Features - UCI interface only. To use it with a Winboard GUI an adapter such as polygot is needed. As of this writing I haven't tested it with Winboard + polygot but assume it will work. - Hash size may be set from 4 to 128 Mb. - Currently there is no support for an opening book. However in most UCI GUIs an external opening book is easy to use. Internals - The basic chess board data structure is a combination mailbox and 0x88. The playing board occupies the middle of the left half of a 16x16 array. - The search is a standard alpha/beta PVS. - Null move is used with a reduction of 2.5 plies in the middle game and 2 plies in the endgame. - Futility pruning. - The evaluation although not very sophisticated is somewhat expensive since generates attack boards and the evaluation is called at all nodes. Compiling I developed Diablo using the Cygwin environment and the MinGW gcc compiler. Under a similar environment compiling should be easy, type "make" in the directory containing the source. I don't have access to a Linux system anymore but compiling under Linux should be nearly as easy. Edit the Makefile and take out the -D_WINDOWS_ part of the compilation string. Muchos Gracias: Contributors Dan Corbit - Various bug fixes to sloppy code. Tord Romstad - Pointed out a few bugs in the search functions. William Hoggarth - Helped with compatibility issues on Mac platforms To people who have provided source code or details, many ideas came from them. Tord Romstad - He convinced me to use the combination mailbox/0x88 data structure, I was planning to use just a 12x12 mailbox but I think the 16x16 board is better. Also the ideas behind the implementation of the piece lists come from his engine Gluarung. I implemented and debugged the piece lists myself but named all the piece list macros the same as his to give tribute to his work. I think his are still better. I also make use of a couple of tables generated by him for attacked board based SEE routines. There are probably a few other areas where inspiration came from his code or messages not mentioned. Also he has always been helpful for sharing ideas and more recently source code to his engine Gluarung. Fabien Letouzey - Author of Fruit and polygot. When Fabien released Fruit and I saw how relatively simple it was and how much stronger it was then DrunkenMaster I started thinking seriously about writing a new engine from scratch. Dusan Dobes - Phallanx. Robert Hyatt - Crafty. Ed Schroder - Rebel/Pro Deo. His web page on chess programming has been extremely helpful. And others that are too many to list who have contributed to my chess programming education at the various chess programming message boards or web sites. Also thanks to people that test and run engine tournaments: Leo Dijksman, Guenther Simon, Olivier Deville, Igor Gorelikov, Lars Hallerstrom, Heinz van Kempen, Patrick Buchmann, Nicolas Normand. Let me know if I forgot anyone. Contact: I can be reached by email at WillSurfForFood at gmail dot com.
About
The Diablo Chess Engine
Resources
License
MIT, GPL-2.0 licenses found
Licenses found
MIT
LICENSE
GPL-2.0
COPYING
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 99.2%
- Other 0.8%