-------------------------------------------------------------------------------
- Cheese version 1.3b * TEST *
-------------------------------------------------------------------------------

Auteur   : Patrice DUHAMEL (cheesechess@free.fr)

Site web : cheesechess.free.fr/index.html


-------------------------------------------------------------------------------
Fichiers
-------------------------------------------------------------------------------

Cheese_13b_32.exe : version 32 bits
Cheese_13b_64.exe : version 64 bits utilisant une instruction cpu pour compter les bits
Cheese_13b_64nh.exe : version 64 bits pour les cpu ne supportant pas l'instruction de comptage de bits


-------------------------------------------------------------------------------
Installation
-------------------------------------------------------------------------------

* Arena Chess :

  - Dzipper tous les fichiers dans un mme rpertoire
    
  - Lancer Arena Chess

  - dans le menu Engines choisir "Install New Engine"

  - Choisir UCI ou Winboard (le moteur fonctionne dans les 2 modes)

  - Choisir l'executable de Cheese dans le rpertoire o il a t copi

  - Pour configurer Cheese, choisir l'option Configure dans le menu Engines


* Winboard

  - Dzipper tous les fichiers dans un meme rpertoire

  - pour pouvoir choisir Cheese a partir de "Winboard startup dialog" :
 
  - Editer le fichier winboard.ini qui se trouve dans le rpertoire
    d'installation de Winboard.

  - reprer les lignes : /firstChessProgramNames=
                    et : /sedondChessProgramNames=

  - ajouter le nom de l'executable entre guillemets (sans le .exe)
    dans la liste des noms

  - pour configurer cheese, modifiez le fichier cheese.ini


* Parametres

  Le fichier cheese.ini permet de choisir certains parametres en version Winboard :

  Hash = taille de la hash table en Mo (ex: 8, 16, 32 ,64, 128, 256)

  Book = 1 ou 0 , 1 = utilisation d'un livre d'ouverture compatible avec Cheese (cheese utilise son propre format)
			
  BookFile = chemin du livre d'ouverture


* Ligne de commande

  -help

    affichage des options disponibles 

  -testsuite nom_de_fichier

    lance l'analyze d'un fichier EPD 

  -perft profondeur

    lance le calcul du nombre de noeuds a partir de la position actuelle, jusqu'a la profondeur indique 

  -perft profondeur -fen position

    lance le calcul du nombre de noeuds a partir de la position FEN donne, jusqu'a la profondeur indique 

  -divide profondeur

    lance le calcul du nombre de noeuds pour chaques coups possibles, a partir de la position actuelle, 
    jusqu'a la profondeur indique 

  -divide profondeur -fen position

    lance le calcul du nombre de noeuds pour chaques coups possibles, a partir de la position FEN donne, 
    jusqu'a la profondeur indique 

  -buildbook fichier.pgn fichier.bin profondeur nombre

    cration d'un nouveau livre d'ouvertures a partir d'un fichier PGN
    la profondeur est le nombre de coups maximum de l'ouverture, nombre le nombre minimum de fois 
    que doit etre utilis cette ouverture pour etre prise en compte



* Livre d'ouvertures

  Cheese peut utiliser un livre d'ouverture dans son propre format.

  le livre cheeseopenbook.bin a t cr a partir de gm2600.pgn, avec une profondeur de 
  10 demi coups, et pour des ouvertures utilises au minimum 5 fois.
  


-------------------------------------------------------------------------------
Caractristiques 
-------------------------------------------------------------------------------

    * Moteur compatible UCI / Windboard
    * Bitboards and magic bitboards
    * Recherche alpha-beta (negamax)
    * Iterative deepening
    * Aspiration window
    * Quiescence search
    * Livre d'ouvertures (propre format de fichier)
    * Principal Variation Search
    * Internal iterative deepening
    * Adaptive null moves pruning
    * Late move reduction
    * Futility pruning + extended + razoring
    * mate distance pruning
    * Transposition table + Zobrist hash key
          * Utilise Mersenne Twister pour les nombres alatoires
          * Remplacement : toujours 
    * Livre d'ouverture
    * Extensions de recherche
          * Fractional ply
          * Check extension
          * Mate threats
          * Pawn on 7th 
	  * Recapture
    * fonction d'valuation
          * Phase de jeu (incremental)
          * Materiel (incremental)
          * Mobility + safe mobility
          * Piece tables
          * Penalit pour un dplacement de la reine pendant l'ouverture
          * Pions doubl
          * Pions pass + connects
          * Pions isol
          * Pions arrir
          * Pions bloqu 
          * Tours sur des colonnes ouvertes ou semi-ouvertes
          * Tours ou reine sur la 7eme range
          * King safety + tropism
          * Materiel insuffisant
	  * Avant poste pour les cavaliers
    * Move ordering
          * Hash table
          * Static Exchange Evaluation
          * Promotion
          * Killer moves (depth and depth-2)
          * Mate killer move
          * History heuristic 


-------------------------------------------------------------------------------
Versions prcdentes
-------------------------------------------------------------------------------

    * Version 1.3 - 1er Nomvembre 2008

    	  * corrige un probleme avec winboard : cheese continuait a jouer apres avoir perdu
    	  * corrige un probleme dans le SEE
	  * corrige un probleme avec les rptitions
	  * changement du test pour l'extension recapture
	  * ajout du pondering en UCI et Winboard
	  * ajout du mode analyse avec Winboard
	  * utilise les options UCI pour configurer le moteur
	  * ajout du mate distance pruning
	  * optimisations dans la generation des coups et evaluation
	  * utilise les tables de position incrementales
	  * change le tri des coups dans root
	  * changement de l'ordre de tri des coups
	  * changement du nombre de coups avant l'utilisation du LMR
	  * augmente la marge utilis pour lazy evaluation

    * Version 1.2 - 24 Mai 2008

          * correction d'un probleme de calcul du temps, les coups de l'ouverture n'taient pas toujours compt avec winboard
	  * utilise les magic bitboards pour les fous, tours, et reines
          * optimisation de la gnration des coups et du SEE
          * Version Linux disponible

    * Version 1.1b - 22 Janvier 2008

          * correction de problemes de coups illgaux en cas de promotions
          * correction de problemes qui povoquaient des coups illgaux avec Winboard
          * correction de l'affichage du score dans Winboard
          * correction de problmes de gestion du temps

    * Version 1.1 - 2 Janvier 2008

          * correction d'un probleme dans la gnration des coups
          * correction de problemes pour les protocols UCI et Winboard
          * correction de problemes avec les extensions
          * corrections et optimisations du SEE
          * correction de problemes avec des table de hash d'une taille non puissance de 2
          * changement de la methode de communication avec l'interface
          * change la faon de compter les noeuds
          * amlioration de la gestion du temps
          * ajout de recapture extension
          * ajout d'un bonus pour les pions en fin de partie
          * ajout des avant postes pour les cavaliers
          * ajout d'un bonus pour les pions passs connects 

    * Version 1.0c - 12 Novembre 2007

          * correction de problemes dans la gestion du temps
          * correction de problemes pour les protocoles UCI et Winboard en mode tournois
          * (les versions precedents ne fonctionnaient pas correctement en tournois)
          * ne reflechis pas s'il n'y a qu'un seul coup lgal
          * possibilit d'utiliser un livre d'ouverture 
	  * correction de problemes dans l'envoi d'informations a l'interface pendant la recherche

    * Version 1.0b - 4 Novembre 2007

          * corrections concernant le protocol Winboard
          * changement de la fonction pour la gestion du temps 

    * Version 1.0 - 19 Octobre 2007 (premire sortie)

          * nettoyage du code
          * correction avec la notation FEN
          * correction de la valeur du mat
          * ajout d'autres modes de recherche (UCI)
          * ajout safe mobility
          * ajout futility, extended futility + razoring
          * augmente la taille du buffer de commande UCI
          * correction dans les pieces square table
          * correction d'un probleme avec safe mobility
          * ajuste la valeur des mats dans la hash table
          * correction avec les null moves en fin de partie
          * correction avec Internal Iterative Deepening
          * ajoute fractional ply
          * ajoute mate threat extension
          * ajoute pawn on 7th extension
          * optimisation des fonctions de gnration des coups 


    * Version 0.9 - 4 Mai 2007

          * nettoyage du code
          * ajout prise en compte des repetitions
          * ajout regle des 50 coups
          * correction dans move ordering
          * donne une plus grande valeur aux pions pass
          * ajout evaluation pour materiel insuffisant
          * optimisation de la gnration des coups
          * correction dans l'evaluation du materiel incremental
          * ajout bonus pour une paire de fou
          * correction dans null moves
          * correction dans late move reduction
          * ajout mate killer, killers at depth-2
          * ajout incremental gamephase
          * correction dans quiescence search
          * optimisation du tri des coups
          * reduit le nombre d'appel a la foncion inCheck
          * ajout adaptive Null Move pruning
          * correction avec la notation FEN 


    * Version 0.8 - 2 Avril 2007
  
          * correction dans null moves
          * ajout Principal Variation Search
          * ajout incremental material evaluation
          * ajout gamephase dans la fonction d'valuation
          * ajout penalit pour un dplacement de la reine dans l'ouverture
          * ajout bonus et pnalits pour les pions
          * ajout bonus pour les tours sur des colonnes ouvertes/semi-ouvertes
          * ajout Static Exchange Evaluation
          * ajout check extension
          * ajout bonus pour tours sur la 7eme range
          * ajout king safety and tropism
          * correction pour le protocol UCI
          * ajout Late Move Reduction
          * ajout Internal Iterative Deepening 


    * Version 0.7 - 21 Janvier 2007

          * ajout moteur UCI / Winboard
          * correction pour iterative deepening
          * ajout aspiration window
          * ajout quiescent search
          * correction dans alpha-beta
          * ajout null moves pruning
          * correction pour history heuristic
          * optimise la fonciont d'valuation
          * correction dans les fonctions de gnration des coups
          * ajout aspiration window 


    * Version 0.6 - 19 Dcembre 2006

          * optimization de la recherche alpha-beta
          * ajout iterative deepening
          * optimisation des fonctions de gnration des coups
          * ajout du tri des coups, MVV/LVA et killer moves
          * ajout de fonctions pour lancer des tests au format epd
          * ajout history heuristic 


    * Version 0.5 - 22 Mars 2006

          * ajout Zobrist hash key + Transposition Table
          * ajout gestion de la notation FEN
          * correction et optimisation dans les fonctions de gnration des coups
          * ajout de la fonction Perft
          * ajout de la fonction divide
          * optimisation du calcul des hash key
          * correction dans la recherche alpha-beta 


    * Version 0.2 - 26 Fvrier 2006

          * Rotated Bitboards
          * Gnration des coups
          * fonction d'vasion d'chec
          * Simple recherche alpha-beta 


    * Dbut - 6 Fvrier 2006

          * Simple interface avec SDL + OpenGL, aucunes rgles 

-------------------------------------------------------------------------------
Remerciements
-------------------------------------------------------------------------------

Je remercie Grant Osborne, Robert M. Hyatt, Bruce Morland, Jonatan Peterson,
Gerd Isenberg, Pradu Kannan,
Et tout les participants aux forums Winboard et TalkChess.

Et merci a toutes les personnes qui testent ou qui ont signal certains problemes.


-------------------------------------------------------------------------------
License
-------------------------------------------------------------------------------

Copyright 2008 DUHAMEL Patrice.
Ce programme est distribu gratuitement, et ne doit pas etre vendu ou distribu
sans l'autorisation de l'auteur.
