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 là 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