From f09e0d4f5649eba4362d8137a351b3120ac5dc52 Mon Sep 17 00:00:00 2001 From: Vincent Ollivier Date: Fri, 9 Nov 2012 09:14:52 +0100 Subject: [PATCH] Improve README and INSTALL documentation --- INSTALL.md | 61 ++++++++++---------- README.md | 189 +++++++++++++++++++++++++++++++------------------------------ 2 files changed, 128 insertions(+), 122 deletions(-) rewrite INSTALL.md (67%) rewrite README.md (66%) diff --git a/INSTALL.md b/INSTALL.md dissimilarity index 67% index 13ecba9..b3ddb13 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,30 +1,31 @@ -Installation -============ - -For compiling Purple Haze with the default compiler: - - $ make - - -For compiling Purple Haze with the Clang C++ compiler: - - $ env CXX=clang++ make - - -For compiling with the Intel(R) C++ compiler, on the IA-32 architecture -using Intel(R) C++ Compiler XE version 12.0.4 (2011/04/27) on GNU/Linux: - - $ source /opt/intel/composerxe/bin/compilervars.sh ia32 - $ env CXX=icpc make - - -For using Purple Haze: - - $ ./purplehaze - - -For running Purple Haze unit tests: - - $ cd test/unit - $ make - $ ./test_purplehaze --gtest_color=1 +Installation +============ + +For obtaining Purple Haze and compiling the source with the default compiler: + + $ git clone git://github.com/vinc/purplehaze.git + $ cd purplehaze + $ make + + +For compiling the source with the Clang C++ compiler: + + $ env CXX=clang++ make + + +For compiling with the Intel C++ compiler, on the IA-32 architecture using +Intel C++ Compiler XE on GNU/Linux: + + $ source /opt/intel/composerxe/bin/compilervars.sh ia32 + $ env CXX=icpc make + + +For running the unit tests: + + $ make test + + +And finally for executing Purple Haze: + + $ ./purplehaze + diff --git a/README.md b/README.md dissimilarity index 66% index 499b4f2..0170bea 100644 --- a/README.md +++ b/README.md @@ -1,92 +1,97 @@ -Purple Haze -=========== - - -Do Chess Engines Dream of Electric Guitar? ------------------------------------------- - -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 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 scientific papers' reading on the subject. -A new version was written in C++ between the summer of 2009 and the beginning -of 2010 but it was very bugged and difficult to maintain so the second major -rewriting started during the winter of 2011. This time it is only slightly -faster but a lot more organized (comparatively) and follow a test-driven -development. 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. - - -Implemented features --------------------- - -* Data Structures: - * 0x88 Board Representation - * Piece-Lists - -* Moves: - * Lazy Move Generation - * Best Move from Iterative Deepening or Transposition Table - * Most Valuable Victim / Least Valuable Aggressor - * Killer Moves - -* Search: - * Principal Variation Search - * Iterative Deepening - * Transposition Table - * Mate Pruning - * Check Extension - * Adaptative Null Move Pruning - * Extended Futility Pruning - * Late Move Reduction - -* Quiescence Search: - * Standing Pat - * Delta Pruning - * Move Ordering (via MVV/LVA) - -* Evaluation: - * Lazy Evaluation - * Material Hash Table - * Opening and Ending Piece-Square Tables - * Tapered Evaluation - -* Debuging - * Perft - * Divide - * EPD Test Positions - -* Miscellaneous - * SAN output - * FEN parsing - * Zobrist hashing - * Xboard protocol - * Time Management - - -Installation ------------- - -See INSTALL for installation instructions. For the moment there is no stable -version yet. - - -Usage ------ - -You are free to read it, run it and modify it. If you choose to do so, drop me -an email at , it is still a very young project -written by a beginner in chess programming so any feedback would be really -appreciated! +Purple Haze +=========== + + +Do Chess Engines Dream of Electric Guitar? +------------------------------------------ + +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. + + +Implemented features +-------------------- + +Data Structures: +* 0x88 Board Representation +* Piece-Lists + +Moves: +* Lazy Move Generation +* Best Move from Iterative Deepening or Transposition Table +* Most Valuable Victim / Least Valuable Aggressor +* Killer Moves + +Search: +* Principal Variation Search +* Iterative Deepening +* Transposition Table +* Mate Pruning +* Check Extension +* Adaptive Null Move Pruning +* Extended Futility Pruning +* Late Move Reduction + +Quiescence Search: +* Standing Pat +* Delta Pruning +* Move Ordering (via MVV/LVA) + +Evaluation: +* Lazy Evaluation +* Material Hash Table +* Opening and Ending Piece-Square Tables +* Tapered Evaluation + +Debugging: +* Perft +* Divide +* EPD Test Positions + +Miscellaneous: +* SAN output +* FEN parsing +* Zobrist hashing +* Xboard protocol +* Time Management + + +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 + $ make + + +Usage +----- + +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. -- 2.11.4.GIT