Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vinc/purplehaze
0x88 chess engine written in C++ ♘
https://github.com/vinc/purplehaze
chess chess-engine
Last synced: 2 months ago
JSON representation
0x88 chess engine written in C++ ♘
- Host: GitHub
- URL: https://github.com/vinc/purplehaze
- Owner: vinc
- License: gpl-3.0
- Created: 2010-10-04T10:53:39.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2013-01-21T20:50:15.000Z (almost 12 years ago)
- Last Synced: 2024-04-15T14:06:36.821Z (8 months ago)
- Topics: chess, chess-engine
- Language: C++
- Homepage: http://vinc.cc/projects/purplehaze
- Size: 770 KB
- Stars: 12
- Watchers: 6
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
Purple Haze
===========> Do chess engines dream of electric guitar?
Synopsis
--------Purple Haze is a free chess engine compatible with the Xboard protocol. It is
written by Vincent Ollivier and distributed under the terms of the GNU General
Public License version 3.The development of Purple Haze started in the winter of 2006-2007 as a pet
project to learn the Java programming language by a student in Computer
Science. It was terribly slow and rapidly put aside for two years before
benefiting from a regained interest after much research and reading of papers
on the subject.A new version was written in C++11 between the summer of 2009 and the beginning
of 2010 but it was full of bugs and not well engineered so a second major
rewriting started during the winter of 2010-2011. This time it was only
slightly faster but it would prove to be a lot easier to maintain and the
overall code quality was enhanced by using a test-driven development practice.
The goal is to end up with something reasonably good and free of bugs.Most of its concepts or algorithms are inspired from scientific papers and
Open Source engines, notably TSCP, CPW, Fruit, Crafty and Stockfish. A lot of
the ideas used for the implementation of theses concepts also comes from
reading the [Computer Chess Club Forums](http://talkchess.com/forum/) and the
[Chess Programming Wiki](http://chessprogramming.wikispaces.com/). Without
them Purple Haze would not be able to do more than moving the pieces around
the board.Installation
------------See INSTALL for detailed installation instructions or just type the following
commands in a terminal:$ git clone git://github.com/vinc/purplehaze.git
$ cd purplehaze
$ makeFeatures
--------Data Structures:
* 0x88 Board Representation
* Piece-ListsMoves:
* Lazy Move Generation
* Best Move from Iterative Deepening or Transposition Table
* Most Valuable Victim / Least Valuable Aggressor
* Killer MovesSearch:
* Principal Variation Search
* Iterative Deepening
* Transposition Table
* Mate Pruning
* Check Extension
* Adaptive Null Move Pruning
* Extended Futility Pruning
* Late Move ReductionQuiescence Search:
* Standing Pat
* Delta Pruning
* Move Ordering (via MVV/LVA)Evaluation:
* Lazy Evaluation
* Material Hash Table
* Opening and Ending Piece-Square Tables
* Tapered EvaluationDebugging:
* Perft
* Divide
* EPD Test PositionsMiscellaneous:
* SAN output
* FEN parsing
* Zobrist hashing
* Xboard protocol
* Time ManagementUsage
-----You are free to read it, run it and modify it. If you choose to do so, drop me
an email at , it is not yet a mature project so
any feedback will be really appreciated.