France Echecs Bandeau France Echecs |  
---- Wednesday 27 November 2024
--- ---- --- Ecrire au webmaster
Nom d’utilisateur   Code d’accès 
--- --- ---
Forums  | Devenir membre | Mot de passe oublié ? | Charte | A propos Contacter France-Echecs
Actualités   Actualités
Tournois   Tournois
Ouvertures   Ouvertures
Clubs   Clubs
Informatique   Informatique
Arbitrage   Arbitrage
Problèmes   Problèmes
FAQ   FAQ
Etudes   Etudes
Finales   Finales
Théorie   Théorie

 Rechercher sur le site  

Abonnez-vous à la revue Europe-Echecs
Solution pour modifier le niveau de jeu d’un module et l’exploitation des ressources du processeur pour un public débutant en programmation par midi le  [Aller à la fin] | Informatique |
Bien que les modes d’entrainement de Fritz de Chessbase soient, disons le, assez bien réalisés pour les joueurs de club moyens, il existe une solution efficace pour jouer avec un module dans le mode standard de Arena ou de Fritz. Oui mais voilà, il faut mettre la main à la patte… rassurez-vous si vous débutez en informatique, le niveau est un niveau de débutant en programmation.

Le but est d’utiliser une fonction en langage C qui suspend le processus du module quelques millièmes de secondes dans la boucle principale de calcul, ce qui réduit l’exploitation des ressources du processeur d’où une efficacité sans commune mesure avec une boucle de temporisation. En conséquence, moins de chauffe pour le PC surtout si c’est un portable, moins de bruit avec la ventilation et un affaiblissement du niveau de jeu sans dénaturer le style de jeu du module, ce qui permet entre autre d’utiliser le temps de réflexion permanente (permanent brain) qui contribue à une meilleure simulation de la partie tout comme le fait d’utiliser pleinement le temps imparti du module, ce que ne fait pas l’interface Arena par exemple.

Les anciennes interfaces Fritz de Chessbase permettaient d’utiliser les modules de type UCI 2 exploitant le protocole UCI-Limit-Strength mais ce n’est plus le cas actuellement.

Il faut pour ce faire :

-Windows XP ou W7 (pas testé avec W8).
-Télécharger l’environnement de développement Codeblocks comportant le compilateur C/C++ GCC GNU, soit le pack codeblocks-12.11mingw-setup.exe à l’adresse http://www.codeblocks.org/downloads/binaries. A ce sujet, la version 10.05 est mieux finie et on trouve facilement des documentations PDF de qualité avec google en tapant les mots clés Codeblocks pdf.
-Le module SCP/GnuChess 2.03 JA de John Stanback de type WINBOARD téléchargeable sur le site de Jim Ablett’s http://jimablett.net63.net/ en cliquant sur Gnuchess-203-ja.zip (http://john.stanback.net/ pour avoir des informations sur le module).

Une fois installé Codeblocks il faut créer un projet nommé, par exemple, GnuChess 2.03 modified qui comporte les sources gnuchess.c et my_signal.h (un copier/coller de gnuchess.c dans main.c fait l’affaire avec un projet autogénéré par l’assistant de création de projet).

Les modifications sont les suivantes :

Au début du source gnuchess.c, il y a les déclarations des librairies dans les directives #include pour ctype.h, string.h, etc... Ajouter une directive #include avec windows.h en respectant la syntaxe du source.

Attention, ici je n'ai pas mis les signes inférieurs et supérieur qui sont utilisés comme balises par le site de france-echecs donc il ne faut pas oublier de faire comme dans le source du programme !

Cette librairie windows.h permet d’utiliser les API Windows et ainsi de pouvoir ajouter la fonction Sleep (x) avec x en millisecondes dans la fonction SelectMove(side,iop) de gnuchess.c à la fin du bloc While :

while (!timeout && Sdepth < MaxSearchDepth)
{
Sdepth++;
ShowDepth(' ');
.
.
.
if (Zscore < score) alpha = Zscore - Awindow - zwndw;
else alpha = score - Awindow - zwndw;

Sleep(5000);

}

La valeur de Sleep (x) est ici de 5000 par exemple.

Et voilà ! On compile et on peut utiliser éventuellement l’adaptateur WB2UCI.exe pour utiliser le module SCP/GnuChess 2.03 JA de type WINBOARD avec les interface Fritz de Chessbase. Penser en ce cas à modifier le fichier Wb2Uci.eng avec un éditeur de texte.

Voici un exemple :

[ENGINE]
Name=GnuChess 2.03 modified DL 1500 ELO
Author=John Stanback
Filename=Wb2Uci.exe

[OPTIONS]
Program=GnuChess_203_modified_DL.exe






© 2024 - France Echecs  | Utilisation des cookies  | Politique de confidentialité