-------------------------------------------------------------------------------
- Cheese version 1.9.2
-------------------------------------------------------------------------------

Auteur   : Patrice Duhamel (cheesechess@free.fr)

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

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

Windows :

  cheese-192-win-64-pop.exe   : version 64 bits utilisant une instruction cpu pour compter les bits (la version la plus rapide).
  cheese-192-win-64.exe       : version 64 bits pour les cpu ne supportant pas l'instruction de comptage de bits
  cheese-192-win-32.exe       : version 32 bits

Linux :

  cheese-192-linux-64-pop     : version 64 bits utilisant une instruction cpu pour compter les bits (la version la plus rapide).
  cheese-192-linux-64         : version 64 bits pour les cpu ne supportant pas l'instruction de comptage de bits
  cheese-192-linux-32         : version 32 bits

Mac OS :

  cheese-192-mac-64-pop	   : version 64 bits utilisant une instruction cpu pour compter les bits (la version la plus rapide).
  cheese-192-mac-64	   : version 64 bits pour les cpu ne supportant pas l'instruction de comptage de bits

Android :

  cheese-192-arm-32-nopie   : version 32 bits armv7 pour Android 4 et infrieur
  cheese-192-arm-32	    : version 32 bits armv7 pour Android 5 et suprieur
  cheese-192-arm-64	    : version 64 bits armv8 pour Android 5 et suprieur

  
La version Windows est compil avec Visual Studio 2010 Express.
La version Linux est compil sous Linux Mint 18.3 avec gcc 5.4.0, sans librairies dynamiques.
La version Mac OS est compil sous OS 10.11.6 avec clang 4.2.1.
La version Android est compil avec le NDK Android r13b et Android Cmake. 

-------------------------------------------------------------------------------
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 Xboard (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


* Xboard / Winboard

  - Dzipper tous les fichiers dans un mme rpertoire

  - Lancer Winboard, et choisir "Load First Engine" dans le menu "Engine"

  - Indiquer le chemin de l'executable du moteur, l o il a t install

  - pour configurer cheese, modifiez le fichier cheese.ini


* Android

  - Utiliser une interface qui accepte les modules UCI/XBoard, par exemple Chess for Android ou Droid Fish.


* Paramtres

  Le fichier cheese.ini permet de choisir certains paramtres en version Xboard :

  Hash = taille de la hash table en Mo (ex: 8, 16, 32 ,64, 128, 256 ...)
	 minimum = 1, maximum = 16384 pour la version 64 bits et 2048 pour la version 32 bits

  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

  UseStrength = 0 or 1, 1 = utilise le paramtre StrengthELO pour rduire le niveau ELO du programme

  StrengthELO = valeur entre 1000 et 2600, correspondant au niveau ELO du programme

  LogLevel = active ou dsactive le fichier log (0 = dsactiv, 127 = active toutes les options)
    ajouter les valeurs pour plusieurs options :
	 1 = informations basiques
	 8 = avertissements
	16 = erreurs
	32 = erreurs critiques
	64 = informations de l'interface (UCI / Xboard)
    note : le fichier log peut ralentir le moteur.

  UseNullMovePruning = 1 or 0, utilis pour activer ou dsactiver le Null Moves Pruning 
 
  UseLMR = 1 or 0, utilis pour activer ou dsactiver le Late Move Reduction

* Ligne de commande

  -help

    affichage des options disponibles 

  -testsuite nom_de_fichier

    lance l'analyse d'un fichier EPD 

  -perft profondeur

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

  -perft profondeur -fen "position"

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

  -perftd profondeur
  -perftd profondeur -fen "position"

    mme chose que perft mais avec le nombre de captures, en passant, promotions, roques, checs, et mats

  -divide profondeur

    lance le calcul du nombre de noeuds pour chaque 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 chaque 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 tre utilis cette ouverture pour tre 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.

-------------------------------------------------------------------------------
Changes in version 1.9.2
-------------------------------------------------------------------------------

    * Version 1.9.2 - 17 Fevrier 2018

	- corrige un problme o le moteur ne repond pas en mode pondering, present depuis la version 1.9
	- corrige un problme de coups illegaux en pondering quand la recherche se termine avant que l'interface envoie un message
	- corrige une erreur avec Arena/UCI quand le pondering est actif, renvois toujours un coup au parametre ponder (si possible)
	- corrige un problme au lancement de la prochaine partie d'un tournois avec Fritz GUI

-------------------------------------------------------------------------------
Changements dans la version 1.9.1
-------------------------------------------------------------------------------

    * Version 1.9.1 - 16 Septembre 2017

	- corrige un problme de coups illegaux assez rare quand on utilise une position FEN au dpart, 
	   cause d'une mauvaise initialisation des droits de roque
	- corrige un plantage dans l'option testsuite quand 'am' ou 'bm' est rencontr 2 fois
	- affiche un message d'erreur quand un coup illegal est envoy par l'interface
	- ajout des options pour dsactiver le Null moves pruning et LMR
	- quelques optimisations du code
  
-------------------------------------------------------------------------------
Changements dans la version 1.9
-------------------------------------------------------------------------------

    * Version 1.9 - 6 Mai 2017

	- corrige un plantage possible : variable non initialise pour le roque
	- corrige un plantage rare dans de trs longues parties
	- reduit la taille de la hashtable des pions
	- change la structure de la hashtable
	- supprime la pnalit pour le dplacement de la reine en dbut de partie
	- supprime la pnalit pour la perte du roque	
	- ajoute plus de rduction pour le LMR en fonction du nombre de coups et de la profondeur
	- ajoute plus de rduction pour le null moves pruning en fonction de la profondeur
	- utilise config.ini pour les valeurs par dfaut en mode UCI
	- ajoute une option pour activer le fichier log
	- rcrit la gnration des coups et la gestion de l'ordre des coups
	- rorganise le code pour la recherche
	- sortie de la version armv8

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

J'aimerai remercier spcialement les personnes suivantes pour leur travail, les documents qu'ils ont publi qui m'ont
aid et motiv  crer mon moteur de jeu d'checs :

 Robert M. Hyatt, Bruce Morland, Gerd Isenberg, Pradu Kannan, Grant Osborn, Jonatan Peterson.

Merci aux participants des forums winboard et talkchess, 
aux personnes qui passent du temps  tester les moteurs de jeu d'chec et  ceux qui ont signal certains problmes.


-------------------------------------------------------------------------------
Licence
-------------------------------------------------------------------------------

Copyright 2006-2018 DUHAMEL Patrice.
Ce programme est distribu gratuitement, et ne doit pas tre vendu ou distribu
sans l'autorisation de l'auteur.

