;

P.Fabiani

Fabiani Philippe

Presentation

Je suis avant tout un joueur d’échecs. Ce sont les échecs qui m’ont amené à l’informatique et ensuite à la programmation.

J’ai appris à jouer à 7 ans par hasard pendant les vacances, car personne ne joue aux échecs dans mon entourage et depuis c’est ma principale passion. Mon premier échiquier électronique était le ChessMaster Radiophon, il n’avait pas de transfo, on le branchait directement sur le secteur. Il mettait plusieurs minutes à jouer un coup…horrible. Par la suite j’en ai eu d’autres comme le Par Excellence, le Corona, le Risc2500, le Berlin Pro, les deux derniers étant des adversaires de taille pour mon niveau.

C’est en lisant la revue Europe Echecs que j’ai découvert la Puce Echiquéenne. Vouloir faire tourner Fritz, Hiarcs ou ChessGenius sur un 486 était la raison principale pour moi d’acheter un pc. J’ai conçu mon premier jeu d’échecs avec VB en n’ayant jamais lu aucune ligne de code, je n’ai eu Internet que beaucoup plus tard. Grâce au net j’ai découvert le TSCP de Tom Kerrigan et j’ai eu là la base pour commencer sérieusement.

J’ai ajouté en quelques jours des optimisations personnelles et d’autres comme le nullmove ou l’élagage de futilité. Pour gagner en rapidité j’ai codé en Pascal avec Delphi. Avec l’avènement des modules on a pu s’occuper uniquement du code et laisser l’interface de côté. Donc s’en est suivi la création de Delphil en 2004. Aujourd’hui (2009) on peut estimer que Delphil possède encore 80% du code du TSCP. Seule l’évaluation a été fortement modifiée.
Le générateur de coups, les fonctions de recherche, de tri, de répétition, l’historique etc… sont identiques. Les tables de transpositions, les extensions, le nullmove, sont les principales améliorations, mais ça ne représente que peu de lignes et de travail. Pas de bitboards ou de passage au C++ (légèrement plus véloce) car mon but et mon plaisir en tant que joueur est d’implémenter des connaissances et d’obtenir une évaluation correcte d’une position. Une autre entorse à ce principe a été la gestion des TableBases, peu évidente car aucun exemple en Pascal n’était disponible, mais c’était juste pour rajouter une fonction car un programme avec une mauvaise évaluation jouera toujours aussi mal avec ou sans les Tables. Le passage aux multiprocesseurs et aux 64bits (j’attends une version de Delphi avec support natif du 64bits) sera aussi indispensable dans l’avenir mais sera pour moi plus une course à la vitesse qu’autre chose.

Améliorer un programme demande beaucoup de travail, il faut tester une implémentation sur plusieurs centaines de parties sans compter le débogage et ce manque de temps fait qu’on avance très lentement, les gains sont minimes d’une version à l’autre. Mais le but n’est pas d’être en tête de quelque chose sinon je ferai juste du copier-coller sur des open sources.
Comme le résume bien Dostoïevsky: « l’homme, comme le joueur d’échecs, s’intéresse plus à la réalisation d’un but qu’au but lui-même », tout est la dedans.

Philippe.

Dernière version : Delphil 3.2

Retrouvez le site de Philippe içi.

Performance Blitzchess

Version Parties Elo Blitzchess LCT II BT-2450 BT-2630 BS-2830 GS-2930 Quicktest
Delphil 2.9d                
Delphil 2.9c                
Delphil 2.9a (80) 2469            
Delphil 2.8 296 2545            
Delphil 2.7 444 2377 2695          
Delphil 2.6c 256 2404 2675          
Delphil 2.6a 720 2491 2710          
Delphil 2.6 180 2425 2735          
Delphil 2.3 244 2471            
Delphil 1.9g 284 2529            
Delphil 1.9f 236 2499            
Delphil 1.9d 300 2499            
Delphil 1.9c 240 2506            
Delphil 1.9b 240 2510            
Delphil 1.9 240 2443            
Delphil 1.8 260 2516 2715          


Haut de page...
Page d'accueil | Je recherche... | Liens | Livre d'or | De A à Z | Plan du site | Mes Sources | Remerciements | Contact