CuteChess - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Variantes

CuteChess

L'autre interface des variantes


En bref

Fonctionne avec Windows et Linux


Je ne m'étais jamais vraiment intéressé à CuteChess qui, en tant qu'interface pour les échecs standards, m'avait paru à tous points de vue (aspect, fonctionnalités) bien inférieur à Arena et aux autres interfaces gratuites proposées sur ce site. Je n'avais pas perçu son principal atout: elle est capable d'exploiter sans soucis un grand nombre des variantes gérées par Fairy Stockfish, notamment beaucoup de celles dont la taille de plateau diffère du classique 8x8.  

CuteChess est puissante mais très peu grand public. Ses fonctions les plus avancées sont réservées à des utilisateurs chevronnés sachant manipuler cutechess-cli, une interface en ligne de commandes, et les bibliothèques libcutechess du programme. L'interface graphique elle-même ne prend en charge que des fonctions très basiques. Comme le présent article va s'adresser aux simples utilisateurs que nous sommes et non aux développeurs d'applications liées à CuteChess, cela limite l'intérêt. On ne peut notamment pas bénéficier de l'analyse du moteur lors d'une partie en cours et si l'évaluation des coups s'affiche bien sous forme graphique sous l'échiquier, il n'est pas possible de revenir en arrière dans la partie pour démarrer une variante ou simplement pour annuler un coup désastreux. ChessV, bien que très sommaire également, fait quand même beaucoup mieux. L'avantage considérable de CuteChess, c'est... d'accepter Fairy Stockfish, bien plus performant que les petits moteurs de ChessV.


Fairy Stockfish joue à la variante Horde dans CuteChess

Téléchargement

CuteChess est disponible pour Linux en plusieurs configurations : Linux64 standard, RPM (Red Hat Package Manager), AMD64 (DEBIAN) et AppiMage. Vous l'aurez compris, c'est d'abord une application Linux. Néanmoins il y a aussi une version Windows, sous forme d'exe (installable) ou d'archive (portable).
Télécharger CuteChess ?
Par ailleurs, de nombreuses ressources relatives à CuteChess sont rassemblées sur GitHub à cette adresse : https://github.com/cutechess/cutechess

Important : mon antivirus a détecté deux trojans dans la dernière distribution de Cutechess (la 1.3.1) pour Windows. Il y en avait un aussi dans la distribution précédente (1.3.0). Virus Total a confirmé ce diagnostic. Je doute que ces trojans soient très dangereux mais de toute manière l'usage de l'interface devenait complexe pour moi étant donné que mon antivirus déplaçait à chaque utilisation l'exécutable du programme dans le dossier de quarantaine. La version saine la plus récente est la 1.2.0, que vous trouverez sur cette page :

https://github.com/cutechess/cutechess/releases/tag/1.2.0

Les différences étant cosmétiques, je vous invite à télécharger plutôt celle-ci.

Installation et paramétrage du ou des moteurs

Fairy Stockfish

Aucun moteur n'est livré avec la distribution de CuteChess. Nous allons donc y installer Fairy Stockfish 14. Rien de plus simple : menu "Tools" > "Settings", onglet "Engine" et cliquez sur le bouton "+" ("Add a new engine") en bas à gauche de la fenêtre. Allez chercher l'exécutable de Fairy Stockfish sur votre ordinateur.
Validez et avant de refermer la fenêtre, sélectionnez le moteur et cliquez sur le bouton en forme de clé plate ("Configure selected engine(s)"). Ouvrez l'onglet "Advanced" et réglez le moteur à votre convenance. Ce sont évidemment toujours les mêmes paramètres : Threads, taille de la table de Hash, réglage du niveau de force...  Lisez mes remarques à propos de LiGround).


Fairy Stockfish 14 vient d'être ajouté à la liste des moteurs utilisables. L'onglet "Advanced" permet d'accéder à ses réglages...

Installer des moteurs xboard

Contrairement à LiGround, CuteChess est capable de gérer la communication avec un moteur xboard/winboard. C'est une bonne nouvelle car cela nous permet de récupérer les moteurs de ChessV - et même quelques autres - qui fonctionnent souvent aussi avec CuteChess. Ils sont beaucoup moins puissants que Fairy Stockfish mais peuvent être de sympathiques sparring partner.
La méthode d'installation est la même, à un détail près : dans le champ "Protocol", vous devez remplacer "uci" par "xboard". L'onglet "Advanced" affiche comme d'habitude les paramètres réglables disponibles. Explorez-les un peu. Vous pourriez éventuellement ici affecter davantage que les 32 Mo de mémoire alloués par défaut à la plupart des modules (64 ou 128 Mo seront sûrement à la portée de votre ordinateur) ou changer le nombre de coeurs (cores) lorsque ce choix est proposé.

Voir la page "Autres moteurs de variantes"


Quelles variantes ?

La distribution de CuteChess contient un fichier informatif appelé "cutechess-cli.6.txt" où vous trouverez notamment précisé les variantes que l'interface est capable de prendre en charge (il y en a environ 70). Cela signifie par exemple qu'acceptant la variante Capablanca, elle pourra afficher son plateau 8x10 ainsi que ses pièces féériques supplémentaires. Mais il faudra aussi disposer d'au moins un moteur capable de jouer à la variante Capablanca.
Lorsque que vous souhaitez jouer à une variante, il suffit de la choisir depuis le menu "New game", ou depuis le menu "New tournament", puis choisir ensuite l'un des moteurs disponibles, s'il y en a un.

Voici la liste des variantes prises en charge par CuteChess et les moteurs qui les jouent (les lignes grisées correspondent aux variantes qu'aucun moteur de ma connaissance ne prend en charge).


Three-check Chess Chess (SjaakII, Pulsar, Fairy Stockfish)
Five-check Chess (Fairy Stockfish)
Ai-Wok (Makruk variant) (SjaakII, ShaMax, FairyMax, Fairy Stockfish)
Almost Chess (Fairy Stockfish)
Amazon Chess (SjaakII, Fairy Stockfish)
Andernach Chess /
Anti-Andernach Chess /

Antichess (Fairy Stockfish)
ASEAN-Chess (SjaakII, ShaMax, FairyMax, Fairy Stockfish)
Atomic Chess (Pulsar, Nebiyu, Fairy Stockfish)
Berolina Chess (SjaakII, ShaMax, FairyMax, FairyMax, Nebiyu, ChessV)
Cambodian Chess (Ouk Chatrang) (SjaakII, ShaMax, Fairy Stockfish)
Capablanca Chess (SjaakII, ShaMax, FairyMax, ChessV, Joker80, Smirf, Fairy Stockfish)
Capablanca Random Chess (SjaakII, Smirf, Fairy Stockfish)
Chancellor Chess (9x9) (SjaakII, ChessV, Fairy Stockfish)
Change-Over Chess /
Checkless Chess /

Chessgi / Drop Chess (SjaakII, Fairy Stockfish)
Chigorin Chess (Fairy Stockfish)
Circular Gryphon Chess /
Game of Codrus (Losing Chess Variant) (Fairy Stockfish)
Coregal Chess (Fairy Stockfish)
Courier Chess (Medieval) (SjaakII, ShaMax, FairyMax, Nebiyu, Fairy Stockfish)
Crazyhouse (Drop Chess Variant) (SjaakII, Pulsar, Nebiyu, Fairy Stockfish)
Displaced Grid Chess /
Dobutsu Shogi (3x4) (Fairy Stockfish)
Embassy Chess (SjaakII, Fairy Stockfish)
EuroShogi (8x8) (SjaakII, Fairy Stockfish)
Extinction Chess (Fairy Stockfish)
Fischer Random Chess (SjaakII, ChessV, Smirf, Fairy Stockfish)
Giveaway Chess (Losing Chess) (Pulsar, Fairy Stockfish)
Gothic Chess (SjaakII, ShaMax, FairyMax, ChessV, Nebiyu, Joker80, Smirf, Fairy Stockfish)
Grand Chess (SjaakII, ChessV, Nebiyu, Fairy Stockfish)
Grid Chess /
Grid Berolina Chess /
Gryphon Chess /
Gustav III's Chess /

Hoppel-Poppel (Fairy Stockfish)
Horde Chess (v2) (Fairy Stockfish)
Janus Chess (Shamax, FairyMax, ChessV, Fairy Stockfish)
Jeson Mor (Fairy Stockfish)
Judkin Shogi (6x6) (SjaakII, Fairy Stockfish)
Kar Ouk (One-check Ouk) (Fairy Stockfish)
Kinglet Chess (Fairy Stockfish)
King of the Hill Chess (SjaakII, Fairy Stockfish)
Knightmate (SjaakII, ShaMax, FairyMax, ChessV, Nebiyu, JokerKM, Fairy Stockfish)
Loop Chess (Drop Chess Variant) (Fairy Stockfish)
Los Alamos Chess (SjaakII, Fairy Stockfish)
Loser's Chess (Pulsar, Fairy Stockfish)
Makruk (Thai Chess) (SjaakII, ShaMax, FairyMax, ChessV, Nebiyu, HaChu, Fairy Stockfish)
Minishogi (5x5) (SjaakII, Fairy Stockfish)
Modern Chess (9x9) (Fairy Stockfish)
New Zealand Chess  (has N/R hybrids) (Fairy Stockfish)
Placement Chess (Fairy Stockfish)
Pocket Knight Chess (SjaakII, ChessV, Fairy Stockfish)
Racing Kings Chess (Fairy Stockfish)
Rifle Chess /
Seirawan Chess (S-Chess) (SjaakII, ShaMax, FairyMax, Leonidas, Fairy Stockfish)
Shatranj (SjaakII, ShaMax, FairyMax,  ChessV, Pulsar, Nebiyu, HaChu et Fairy Stockfish)
Shogi (Shokidoki, SjaakII, Nebiyu, Fairy Stockfish)
Shoot Chess /
Simplified Gryphon Chess /

Sittuyin (Myanmar Chess) (SjaakII, Fairy Stockfish)
Slipped Grid Chess /
Suicide Chess  (SjaakII, Pulsar, Fairy Stockfish)
Super-Andernach Chess /
Three Kings Chess (Fairy Stockfish)
Two Kings Chess (Wild 9) (Pulsar)
Symmetrized Wild 9 /



Lancer une partie

Menu "Game" > "New" (ou Ctrl + N). Choisissez qui est blanc et qui est noir, la variante souhaitée, le moteur souhaité et le contrôle de temps de la partie. Ce dernier est par défaut en mode tournoi avec 40 coups pour 5 minutes sans temps additionnel.

<- Ici nous voyons que ChessV, Fairy Stockfish, FairyMax, ShaMax et SjaakII peuvent jouer à la variante Capablanca avec CuteChess...

Les autres modes sont : "Time per move" (temps limite pour chaque coup en minutes et secondes), "Infinite" (pas de limite de temps pour le joueur humain) et "Hourglass" (Sablier : le temps utilisé est ajouté au temps disponible de l'adversaire).
Observez que chaque nouvelle partie ouvre un nouvel onglet sur l'interface et que Ctrl + F retourne l'échiquier.


Tournois de moteurs

CuteChess est capable d'organiser des tournois entre moteurs : menu "Tournament" > "New" et la fenêtre de programmation du tournoi s'ouvre. Vous devez choisir un nom pour le tournoi, une variante, un nom de sortie au format PGN (pour conserver les parties jouées), éventuellement un nom de sortie en EPD, le type de tournoi :
"Round Robin" (choix par défaut)
"Gauntlet" (le premier moteur affronte tous les autres moteurs)
"Knockout" (élimination directe)
"Pyramid" (chaque moteur joue contre tous ses prédécesseurs)


Un tournoi Capablanca entre Fairy Stockfish et trois autres moteurs jouant à cette variante

Vous devez aussi définir le nombre de jeux par rencontre (qui doit être fixée à un nombre pair dans les tournois comptant plus de deux joueurs afin de garantir que chaque joueur joue un nombre égal de parties avec des pièces blanches et noires) et le nombre de rondes.
Enfin, évidemment, vous devez ajouter dans le champ "Players", à droite, les moteurs qui seront les protagonistes de ce tournoi (n'apparaitront que les moteurs capables de jouer à la variante choisie).
On croit comprendre que CuteChess pourrait s'appuyer pour ses premiers coups sur une bibliothèque au format PGN ou Polyglot. Malheureusement, je ne dispose pour le moment d'aucune bibliothèque PGN pour quelque variante que ce soit. Et par ailleurs, j'ai créé une petite bibliothèque .bin pour la Horde et CuteChess n'a pas été capable de l'employer… Mais le problème des bibliothèques d'ouvertures pour les variantes n'est pas nouveau.



Ici un tournoi Horde est en cours entre deux variantes de Fairy Stockfish...

Remarque : la stabilité du module de création de tournois n'est pas parfaite. J'ai tenté de lancer de grands tournois pour jauger la force de différents moteurs xboard mais CuteChess n'a jamais réussi à jouer plus de 4 ou 5 parties avant de se bloquer. Sans donner la moindre indication sur la cause du plantage...

Gestion des FEN et PGN

Il est possible de copier-coller la position FEN et de sauvegarder une partie en PGN facilement mais les réutiliser semble beaucoup plus compliqué. Pour afficher une position FEN il faut d'abord créer une partie humain / humain de la bonne variante puis coller le FEN. Même chose pour un PGN, sauf que la partie n'est relue qu'à la profondeur du nombre de plie sélectionnée (par défaut 3). Et j'ai bien l'impression qu'on ne peut pas aller au delà de 65 plies ! Pour l'édition de parties ou de positions, il vaudra mieux repasser après amélioration de l'interface !
Par contre, j'ai pu recharger une partie de Horde dans LiGround sans difficulté. Même chose pour une position FEN.

Rob Rob, janvier 2024


 
 
 
Retourner au contenu | Retourner au menu _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();