Pourquoi programme-t-on Othello ?


Ça n'arrive pas qu'aux autres
(ou les confessions d'un programmeur repentant)

Si, le voile du palais vibrant à chaque ronflement sonore du citoyen en paix avec son âme, vous n'avez jamais passé vos nuits qu'à dormir sous vos plumes, peut-être n'imaginez-vous pas que, sous la lune, certains que le mal ronge, s'adonnent avec délectation à de turpides activités. Mais que font-ils donc, tous ces mâles (eh oui, rien que des mecs !), les nuits de pleine lune ? Ils tapotent leur clavier d'ordinateur bêtement, essayant de faire comprendre à leur machine comment jouer à Othello, s'arrachant les cheveux sur le «dernier» bug. Jusqu'au jour où ils arrêtent de s'arracher les cheveux : on les appelle alors des chauves.

Car, approchez vos oreilles plus près de la feuille pour que vos voisins n'entendent pas le scoop que je vous livre ici, si vous avez déjà joué contre un programme d'Othello, c'est que quelqu'un l'a écrit ! Et ce quelqu'un, qui est-ce ? Un mâle chauve, bien sûr ! Mais peut-être pensez-vous que ce mâle chauve est un mec pas normal, avec des bits partout et des poils nulle part (oh que c'est fin !) : et bien, vous vous trompez ! Car Messieurs, écoutez-moi bien (Mesdames et Mesdemoiselles aussi, bien que cet article soit surtout un truc viril, comme le service militaire, le port des rouflaquettes, la coupe du monde de football et diverses autres guignolades. Je dois préciser que je n'ai rien contre les fonctions analytiques) : nous, les mecs, on a un truc hormonal qui décline avec l'âge, et qui fait qu'on a tous un avenir de chauve ! Examinez votre peigne demain matin, et vous comprendrez ; ceux qui se coiffent avec une éponge ont déjà compris, les pauvres (et ceux qui ne se coiffent pas sont de gros dégoûtants).

Mais, vous demandez-vous, pourquoi sacrifier ainsi sa chevelure à écrire des programmes d'Othello, puisqu'il en existe de pas mauvais tout faits ? C'est une bonne question que vous pouvez vous remercier de vous être posée. Sans fausse modestie, je pense être très bien placé pour y répondre, étant donné que je programme Othello depuis plus de dix ans, que je vais bientôt m'acheter une moumoute, et que je me la suis posée dès avant-hier soir.

Un premier élément de réponse est que le mal est progressif : un jour, on se retrouve avec un ordinateur à apprendre un langage, et on en a vite marre de programmer la résolution d'équation du deuxième degré ou le tracé de fonctions analytiques (je dois préciser que je n'ai rien contre les femmes non plus). Un programme de jeu «intelligent» présente à ce point de vue bien des avantages : c'est assez original, cela sert à quelque chose (à jouer, c'est important), et surtout c'est très prestigieux : parlez-en à votre coiffeur, vous verrez la flamme de l'admiration s'allumer dans ses pupilles naïves qui ne savent pas qu'elles sont en train de perdre un client. Et en plus, un programme d'Othello, c'est particulièrement simple à écrire : on a vu des programmes dont le listing tiendrait sur une étiquette de lotion capillaire. Pourquoi est-ce simple ? Parce que la règle d'Othello est simple ! Si on veut programmer les échecs, il faut se taper la définition de toutes les pièces, des règles tordues comme la prise en passant, les roques, les promotions de pions, le pat. Les dames, ça n'est pas beaucoup mieux ; enfin le Jeu de dames, parce que les dames, surtout analytiques… Le Go, c'est horriblement compliqué (ne serait-ce que de se rendre compte quand la partie est finie !!), le strip-poker, c'est mieux en vrai, et la planche à voile, c'est hors-sujet. C'est simple aussi parce que le déroulement d'une partie d'Othello est simple : cela commence au coup 1, et ne dépasse le coup 60 que si le séisme atteint l'intensité 5,7 sur l'échelle de Richter, qui en compte 10 (c'est peut-être pour ça que les Japonais sont si forts, même la terre tremble devant eux).

C'est à ce moment qu'il faut faire attention à ne pas tomber gravement atteint : quand on a écrit un programme d'Othello, il ne faut surtout pas chercher à l'améliorer, sous peine de calvitie précoce. Parce que le premier programme d'Othello que vous aurez écrit, ne vous en faites pas, il sera nul ! Et il sera facile à améliorer ! Et le suivant un peu moins nul et un peu moins facile, et ainsi de suite. Et, sans y prendre garde, on se retrouve avec un programme représentant déjà une petite somme de travail, et qui vous bat, vous, son programmeur tonsuré ! Ca fait drôle, je vous l'assure, la première fois ! Après, on s'habitue, vient même le jour où on est surpris de gagner, mais plus tard.

On a alors vite fait de sombrer complètement. Toujours battu par son programme, on en vient vite à le croire quasi-imbattable, et à vouloir le frotter aux autres programmes, qui paraissaient, il y a peu, hors de portée. Et là, il faut une bonne dose d'humilité, car bien souvent, ils sont effectivement hors de portée ! Combien ai-je vu de jeunes chauves (moi le premier !) arriver à un tournoi persuadés de s'offrir le scalp de leurs aînés, en repartir déçus, voire mortifiés, de n'avoir accroché que le scalp de Bip. Et alors on se dit : «S'ils peuvent le faire, pourquoi pas moi ?». La quantité de travail est alors importante, il faut pinailler le moindre détail et couper les cheveux en quatre, mais qu'importe, on est accro. Et quand on est accro, la monomanie n'est pas loin, le symptôme du tournoi guette : perte de sommeil, manie des voyages vers de nouveaux horizons (Paris, St-Michel-sur-Orge, Pérenchies, Utrecht, Londres), boulimie de Mips…

Mais, ne le répétez à personne, surtout pas à ma femme (elle m'avait épousé pour mes mèches blondes, que le vent de notre amour faisait flotter bien haut, et qui flottent maintenant dans le lavabo conjugal, c'est dégueulasse), ce vice, comme il est doux ! Cela ne peut se comparer qu'à l'alcool sans la cirrhose, la télé sans électricité, le Bois de Boulogne sans le Sida, la vitesse sans les radars de la maréchaussée, ou à Vincent van Gogh.

Alors, pourquoi pas vous ? Vous avez sans doute été séduits à vos débuts par la facilité d'approche du jeu d'Othello, et ensuite par sa richesse insoupçonnable de prime abord. Il en va exactement de même pour sa programmation. Alors laissez-moi vous donner quelques magistraux conseils et recommandations :

  • Vous n'avez peut-être pas joué votre première partie comme Tamenori. Soyez prudents dans vos objectifs informatiques : essayez au début d'être nul, puis de moins en moins nul. N'essayez pas d'être bon tout de suite, c'est très difficile ;
  • Essayez de vous faire une interface utilisateur puissante, sinon forcément jolie. Retours en arrière, soumission de problèmes, enregistrement de partie, tout cela aide beaucoup dans les phases de tests ;
  • Il existe de la littérature traitant le sujet : par exemple, ce numéro de Fforum ! Il faut en profiter, mais surtout ne pas tout lire avant d'écrire une ligne de programme, ne pas taper un listing sans le décortiquer. Je pense qu'il est bon de se poser des questions avant de lire les réponses. Certains papiers sont très techniques, à la limite incompréhensibles. J'en ai d'ailleurs écrit quelques-uns que je n'ai toujours pas compris ;
  • Dans le midi, on dit que la fiente de pigeon fait repousser les cheveux ;
  • Il ne faut pas rester isolé. Les tournois de programmes d'Othello sont des endroits privilégiés pour discuter : pendant que les machines jouent entre elles, il faut bien tuer le temps en bavardant ! N'ayez pas peur d'y aller ! A titre d'information, ces dernières années, il y a eu des tournois de programmes réguliers à St-Michel-sur-Orge (91) au mois de mars, à Pérenchies (59) en juin, et aussi à Utrecht (NL) en avril et à Londres (Zimbabwe) en août1 ;
  • Les tournois hommes-machines sont aussi très enrichissants, au sens figuré. Tant qu'on en est dans les contingences matérielles, n'espérez pas trop gagner des sous avec un programme d'Othello, quelle que soit sa qualité : il n'y a pas un gros marché pour cela. Le mieux pour gagner des sous, c'est d'écrire un programme qui dessine des billets bien imités sur une imprimante laser, et de faire ses courses avec le résultat produit. Les premiers billets pourront être faits avec une laser noir et blanc et des crayons de couleur ; avec ceux-ci on essaiera d'acheter rapidement une laser couleur. Ensuite, une fois en prison et dégagé des soucis financiers, on pourra consacrer tout son temps à Othello ;
  • Il y a aussi des programmeurs d'Othello sur 3615 Eliott ou 3614 Ness, ceux que je connais (sauf moi, peut-être), sont des gens charmants qui répondent aux questions qu'on leur pose !! (exemple de question : «Eh, mec, t'as pas cent balles ?», exemple de réponse : «Casse-toi ou je te fais un piège de Stoner.»);
  • Qui pourrait me prêter une douzaine de pigeons pendant une cinquantaine d'années ?
  • Il n'est pas nécessaire de posséder une machine basée sur un 786 cadencé à 273 MHz et avec tellement de mémoire cache qu'il n'y a plus rien à cacher. Je suis persuadé qu'on peut faire de très bonnes choses avec un matériel «normal» (ceci dit, je suis presque le seul à en être persuadé !). En revanche, il est intéressant de posséder un programme portable, c'est-à-dire écrit dans un langage suffisamment standard et répandu ; de plus, si le langage est souple, c'est bien ; s'il permet une structuration, c'est bien ; s'il est rapide, c'est bien ; s'il est lisible, c'est bien ; s'il est facile à apprendre, c'est bien. S'il existe, je mange mon chien.

Pour vous fixer un ordre de grandeur, je pense qu'il faut consacrer de l'ordre d'une année de loisirs informatiques avant de pouvoir prétendre jouer dans la cour des grands, à supposer que vous possédiez déjà un niveau othellistique et/ou informatique différent du zéro absolu. C'est long, mais, encore une fois, ça n'est pas un an sans rien voir, c'est un travail très progressif et jamais fastidieux (presque jamais…). Qu'est-ce que cela signifie, jouer dans la cour des grands ? Cela veut dire se situer au même niveau que les tout premiers joueurs français au classement de Jech (et donc, à moins d'être soi-même dans ces tout premiers avoir un programme plus fort que soi), cela signifie pouvoir espérer sinon tout de suite gagner un tournoi du moins tenter d'accrocher les grosses cylindrées du genre, en particulier britanniques ou néerlandaises, cela signifie aussi avoir écrit un programme beaucoup plus fort que tout ce qui se trouve dans le commerce, du moins en ce moment.

Et qu'est-ce que cela apporte ? Si vous lisez cette revue, c'est que vous aimez le jeu. L'aspect ludique est de loin le plus important. Il est à deux étages ici : il y a l'aspect ludique habituel de la programmation que l'on connaît en écrivant le programme (je me fixe un but, et je force la machine à y aller, rapidement si possible), et le jeu du programme lui-même (me suis-je fixé les bons buts ?). De plus, il y a l'aspect technique. Un programme d'Othello peut devenir une chose élaborée, qui initie au développement des programmes importants et des algorithmes sophistiqués. Enfin, l'aspect prestige peut compter : je peux vous dire que je mets toujours dans mon CV que je programme Othello, et je sais que cela fait toujours une bonne impression : au pire, un décideur peut n'y attacher aucune importance.

En bref et en slogans : vous pouvez le faire, l'essayer c'est l'adopter, n'échangez jamais un bon programme contre deux mauvais, voilà ce que j'avais à dire. J'espère qu'après une telle pub, quelques-uns d'entre vous se décideront à tenter l'aventure, et que nous retrouverons de nombreux «bleus» aux prochains tournois de programmes.

Je tiens quand même à préciser avant de terminer que Londres n'est pas au Zimbabwe, c'était pour voir si vous suiviez. Le premier lecteur qui m'envoie sur carte postale le pays où est situé Londres gagne un pion noir à poser sur une case X de son choix pour deux personnes (eh oui, pour que quelque chose soit vraiment X, il faut être deux (ou plus (plus, c'est plus X (tu vois, Olivier, j'arrive aussi à imbriquer les parenthèses ))))) (mais pas à les débriquer, zut)).

François Aguillon


Ce texte a été publié pour la première fois en 1996 comme préface du numéro «spécial Informatique» du magazine FFORUM. Avant l'Internet, les tournois européens avaient lieu principalement à Courchelettes (près de Douai), à Waterloo (Canada) et à Paderborn (Allemagne). Ils se tiennent maintenant sur la toile.

Contactez-nous !