Menu principal :
ZChess 2.00 London
Le moteur sacrificiel
Mis en circulation en 2000, ZChess version "Londres" est un peu à part dans la lignée de moteurs de Franck Zibi -
Au milieu des années 90, le français Franck Zibi a développé en assembleur HP Chess, un mini-
ZChess a évolué jusqu'à la version 2.22 d'octobre 2000 qui atteignait 2450 Elo ; puis le moteur a changé de nom pour devenir Pharaon, lequel a continué à évoluer jusqu'en 2006, approchant les 2700 Elo*. ZChess et Pharaon sont de bons moteurs mais qui ne se distinguent pas particulièrement d'une masse imposante d'autres bons moteurs… sauf ZChess 2.0 London !
* Pharaon est l'un des moteurs de l'interface Eschecs. J'en dit quelques mots dans l'article concernant cette mini-
Style : attaquant à la Mikhaïl Tal
C'est son style de jeu très agressif et spéculatif qui m'a poussé à ajouter ZChess version "London" dans ma sélection de moteurs d'échecs. Ses parties sont souvent étincelantes d'originalité et émaillé de sacrifices que ne renierait pas le "magicien de Riga". L'analogie entre ZChess et Tal s'impose, y compris lorsque le moteur est poussé vers la défaite par ses coups un peu trop aventureux. Il est fort -
* Il s'agit de la valeur fourni par l'auteur. J'ai fait jouer Zchess 2.0 un tournoi 40/10 avec quelques autres moteurs et Bayeselo a estimé son niveau aux environs de 2360 Elo.
Téléchargement et installation
ZChess a quasiment disparu du Web. Je propose donc le moteur sur mon espace Mega.
Télécharger ZChess London ?
L'archive contient six fichiers dont un exécutable ("ZChess.exe") un fichier batch ("ZCH.BAT"), une bibliothèque d'ouvertures ("z_book.bin"), un fichier texte contenant une liste imposante de coups recommandés ou à éviter ("z_style.txt") et un fichier d'initialisation ("ZCHESS.INI").
Le fichier batch était destiné à envoyer des paramètres à l'interface Winboard. Il n'est donc d'aucune utilité pour nous.
ZChess est un vieux moteur Winboard mal déclaré, et mal interprété par les interfaces modernes. Il fonctionne avec Arena mais celle-
Pour Arena, menu "Modules" > "Installer nouveau module" et allez chercher le fichier "ZChess.exe". Comme l'interface croit reconnaitre un moteur UCI, il faut la détromper : menu "Modules" > "Gérer", onglet "Détails", choisir "ZChess" et dans le champ "Type", remplacer "UCI" par "Winboard (vieux)" (le moteur ne fonctionnera pas si ce n'est pas fait).
Lorsque le moteur fonctionne, il génère deux fichiers binaires supplémentaires : "z_learn.bin", qui contient des données d'apprentissage, et "z_style.bin", qui, je crois comprendre, compile les données du fichier "z_style.txt" (auquel vous pouvez ajouter ou même retrancher des entrées -
Le dossier du moteur contient un fichier d'initialisation, "ZCHESS.INI", qui permet de régler un certain nombre de choses. Ouvrez-
[HashTables]
SIZE_HT=16
Il s'agit de la taille de la table de hachage. Valeurs possibles : 2, 4, 8, 16, 32, 64, 128, 256. EFFACER_HT=TRUE
Remise à zéro de la table au démarrage. Ne pas modifier.
[HashPawns]
SIZE_HP=4
Taille de la table de hachage de pions en Mo. Valeurs possibles : 1, 2, 4, 8, 16, 32, 64.
[Display]
noise=5
La réflexion du moteur ne commence à s'afficher qu'au 5eme coup de profondeur d'évaluation. Ne pas modifier.
K_BEST_MODE=1
Il s'agit ici ni plus ni moins du système MultiPv. Par défaut il est désactivé, ce qui est le mieux lorsque le moteur est utilisé comme adversaire. Si supérieur à 1, l'interface affichera la variation principale puis PV2, PV3...
[Search]
min_sd=2
Quel que soit le temps dont dispose le moteur, sa recherche ira au moins jusqu'à la profondeur de 2 coups. Ne pas modifier.
max_sd=35
Quel que soit le temps dont dispose le moteur, sa recherche s'arrêtera à la profondeur de 35 coups. Ne pas modifier.
selectivite=25
Nombre maximal de plies qui doivent être ajoutées à la profondeur d'exploration. Ne pas modifier.
USE_COMBINATION_EXTENSIONS=TRUE (sans intérêt pour nous)
USE_PVS_SEARCH=TRUE (ne pas modifier)
USE_FAILSOFT=FALSE (ne pas modifier)
USE_NULL_MOVE=TRUE
USE_MOINS1=TRUE
USE_FUTILITY_SUPERIEUR=FALSE
USE_BIG_FUTILITY_SUPERIEUR=FALSE
Les paramètres précédents concernent les diverses routines d'élagage de l'arbre de recherche. Les plus importantes sont activées et je suggère de ne rien y changer. Failsoft et les deux modes de l'élagage de futilité sont désactivés par défaut. Là encore, je suggère de ne rien changer.
[TableBase]
ZChess est capable d'exploiter les tables de finale Nalimov. Vous devrez indiquer le chemin vers vos tables, si vous les avez.
USE_TB=TRUE
Recherche des tables de finales activée. Si vous ne les avez pas ou ne comptez pas les utiliser, remplacer TRUE par FALSE
TBPATH=./TB;C:\Echecs\Arena\TB\Nalimov;
Chemin vers les tables Nalimov. Remplacez la partie en noir par votre propre chemin. Vérifiez que les tables sont bien prises en compte en lançant l'exécutable du moteur. Si tout va bien vous devez avoir le message "Found TableBase Files, up to 3 (4 ou 5) men".
[MISC]
ENABLE_PONDERING=TRUE
La pondération est activée par défaut. Je conseille généralement de la désactiver (FALSE). Mais avec Arena cela peut être fait simplement depuis l'interface.
ENABLE_BOOK=TRUE
La bibliothèque d'ouvertures interne est activée. Ne la désactivez que si vous comptez utiliser plutôt une bibliothèque Abk d'Arena.
ENABLE_LOG=TRUE
Le fichier journal est créé par défaut. Inutile pour la plupart des utilisateurs, donc à mettre de préférence sur FALSE.
ENABLE_LEARN_BIN=TRUE
Le fichier d'apprentissage sera créé et alimenté. Il permettra au moteur de ne pas rejouer une position qui l'a fait perdre dans une partie antérieure.
[Evaluation]
DRAW_SCORE=0
Réglage du "Contempt factor" en centième de la valeur d'un pion. Ici, augmenter la valeur pousse le moteur à accepter plus facilement d'aller vers une partie nulle.
OPPONENT_TYPE=0
Il y a trois types d'opposant pour le moteur : 0 = indéterminé, 1 = humain, 2 = moteur d'échecs ou ordinateur. Si vous utilisez ZChess comme adversaire, le mieux sera de régler ce paramètre sur "1".
ENABLE_RESIGN=TRUE
Si TRUE, le moteur est autorisé à abandonner dans une situation qu'il estime désespérée (il ne le fera pas par contre si l'adversaire n'a plus que très peu de temps disponible).
ENABLE_DRAW_OFFER_WHEN_GAFFE=FALSE
Ce paramètre permet d'autoriser (TRUE) ou interdire (FALSE) au moteur de proposer à l'adversaire humain d'abandonner s'il a commis une gaffe dans une situation nettement meilleure.
[Debuggage]
DEBUT_DEBUG_INFO=1
FIN_DEBUG_INFO=1
DEBUG_TEST=1
ECART_DEBUG_INFO=1
START_DEBUG_INTERACTIF=1
DEBUG_LINE=
DEBUG_EPD=
USE_INTERNAL_ITERATIVE_DEEPENING=FALSE
USE_FENETRE_ASPIRANTE=FALSE
Ces paramètres ne concernent pas les simples utilisateurs. Ils ne sont pas commentés.
A noter : lors de la dernière mise à jour de cet article, j'ai réinstallé Zchess dans Arena et le moteur a dysfonctionné. Il jouait correctement mais plus aucun réglage du fichier ini n'était pris en compte. Après beaucoup de manipulations pour le relancer j'ai éteint et rallumé mon ordinateur, installé une copie propre d'Arena et réinstallé Zchess. Tout a alors bien fonctionné. Moteur au standard Winboard ancien, Zchess est un moteur délicat qui a besoin d'être chouchouté.
Gérer la force du moteur
Je n'ai plus le tournoi qui m'a permis d'évaluer Zchess à 2360 Elo mais je sais qu'il y avait plusieurs centaines de parties, que le CT était 40/10 et que la table de hachage était à 128 Mo. Je pense donc la mesure fiable et cela fait de Zchess un moteur assez fort. La question de son affaiblissement se pose...
Méthode d'affaiblissement
Voici la stratégie que je propose :
➤Limiter la taille des deux tables de hachage :
➤Désactiver la bibliothèque pour conduire le moteur vers une bibliothèque plus légère.
➤Désactiver la pondération.
➤Ne pas conduire le moteur vers les tables de finales Nalimov.
Pour cela, ouvrez le fichier "ZCHESS.INI" et dans la section "[HashTables]" indiquez "SIZE_HT=2".
Dans la section "[TableBase]", indiquez "USE_TB=FALSE".
Dans la section " [HashPawns]" indiquez "SIZE_HP=1".
Dans la section "[MISC]", indiquez "ENABLE_PONDERING=FALSE" et "ENABLE_BOOK=FALSE".
Pour la bibliothèque d'ouverture, il vaut mieux éviter quand même d'en priver complètement le moteur, sans quoi ses débuts risques d'être vraiment cahotiques. Avec Arena il suffit de guider le moteur vers une bibliothèque au format de l'interface, l'Abk : "Modules" > "Gérer", choissir Chenard dans la liste des moteurs, onglet "Détails", onglet "Bibliothèque" et allez chercher la bibliothèque avec le sélecteur de fichiers. "Utilisez bibliothèque principale d'Arena avec ce module" doit être décoché.
Je vous propose deux Abk :
➤Mini.abk. C'est une bibliothèque très légère, qui ne fournira jamais plus de 8 1/2 coups.
➤Tal.abk. Bibliothèque de 12 1/2 coups obtenue avec les parties de Mikhaïl Tal.
Agir sur le contrôle de temps
Les seules mesures précédentes pourraient sans doute abaisser le niveau de jeu d'environ 200 Elo. Le reste pourrait être obtenu en sélectionnant une cadence blitz ou rapide. Par exemple :
➤Pour 2000 Elo : CT 40/2
➤Pour 1850 Elo : CT 5+0
➤Pour 1750 Elo : CT 3+0
Attention : c'est purement indicatif. Je n'ai pas testé ces réglages. Vérifiez par vous même.
Evidemment, l'idée est que la limitation de temps ne vous soit pas imposée. Avec Arena, il faut désactiver la pendule : Menu "Options" > "Pendule arrêtée". L'icône en forme d'horloge doit être entourée d'un filet bleu. Attention toutefois : sur les versions récentes de Windows, la pendule tend à se réactiver après chaque coup du moteur. Soyez attentif : si vous voyez le compteur recommencer à égréner le termps qui passe, cliquez à nouveau sur l'icône "pendule". Sinon vous ne tarderez pas à perdre au temps.
Ralentir le moteur avec Force (%) ?
Arena dispose d'une option permettant de ralentir la réflexion du moteur : menu "Modules" > "Gérer", onglet "Détails", sélectionnez ZChess dans la liste des moteurs, onglet "Spécial" et changez la valeur de "Force (%)".
Par défaut la valeur est à 100, soit la force maximale du moteur. A 50%, la vitesse de traitement des données est en principe divisée par deux. Le problème est de savoir à quelle force correspondent les diverses valeurs possibles. Il y avait longtemps que je me proposais de tester ce module d'Arena et je l'ai fait avec Zchess. Les résultats ont été très surprenants. Les voici, sous forme de graphe : 
Nous sommes en présence d'une courbe logarithmique inverse : en partant de 1 la progression est très rapide d'abord (raison pour laquelle il y a 8 niveaux dans les premiers 10%) puis elle s'infléchit progressivement pour finir presque à plat avec les valeurs supérieures à 80%*.
Vous noterez qu'à 1%, Zchess affiche une force qui reste supérieure à 2000 Elo. Alors que diviser son temps de travail par deux ne fait perdre que 60 Elo au moteur. Clairement, Force (%) n'est pas un outil facile à utiliser. D'autant que l'effet doit être très variable en fonction de la cadence. Je déconseille de l'utiliser.
* Le tournoi avec lequel j'ai établi cette courbe était de 1054 parties de 40 coups par tranche de 5 minutes, donc un contrôle de temps assez rapide, mais qui laissait quand même 7,5 secondes de réflexion par coup, en moyenne.
Rob Rob, octobre 2024 (révision janvier 2026).