Le jeu de Tangram électronique, qui est utilisé dans ce site, est une applet java qui a été conçue et réalisée par mon ami Julien Kirch, programmeur.

Travailler en collaboration avec Julien est une expérience très enrichissante et très gratifiante. Julien commence par me demander un cahier des charges dans lequel je dois décrire toutes les options que j'envisage — en dehors de toute contrainte technique — et que je désire voir inclure dans le programme. Cela fait, il me propose en général de nouvelles options auxquelles je n'avais pas songé et que quelques efforts de programmation rendent possibles, j'accepte ou non de les ajouter au programme. Par la suite je reçois plusieurs mails très courts dans lesquels des questions me sont posées qui me demandent de préciser jusqu'au bout ce que je souhaite avoir, jusqu'à la nuance de gris léger du fond du jeu. Puis j'entends moins parler de Julien. Au bout d'une semaine souvent, je reçois une première version du programme, il s'agit d'une version brute avec laquelle Julien s'assure que mes besoins ont été en grande partie compris. Et puis je reçois de plus en plus de fichiers zippés, de nouvelles versions de test, que j'installe les unes après les autres. D'une fois sur l'autre, je demande des modifications, certaines posent d'ailleurs des problèmes proches de l'insoluble à Julien mais qui toujours s'acharne à y trouver des solutions qui apparaissaient jusqu'alors inatteignables (1). De réglages fins en modifications minutieuses, je vois l'application écrite par Julien ressembler, miraculeusement, de plus en plus à ce que j'avais envisagé au premier jour, et qui n'était qu'une vue de l'esprit, enrichie au passage de quelques suggestions toujours opportunes de Julien. Je suis fasciné par la fidélité de cette traduction, celle qui rend techniquement possible l'idée d'un autre, et aussi par le cheminement de la pensée de Julien dont je remarque le parcours de version de test en version de test, chaque nouvelle version répondant aux questions laissées en suspens dans la version précédente, chaque version tenant en elle les questionnements de la version suivante (2).

Dans le cas du jeu de Tangram, j'avais demandé à Julien de dessiner une aire de jeu de 800X600 pixels dans laquelle devrait figurer en haut à gauche la figure à reconstituer, puis je me proposais de lui envoyer un réservoir de figures sous la forme de fichiers images .gif. Julien n'aimait pas cette façon de faire et préférait que les figures puissent être, en fait, chiffrées. Cette solution m'inquiétait un peu, ayant toujours été beaucoup plus doué en dessin qu'en mathématiques. Julien écrivit un programme qui allait me permettre de composer visuellement autant de figures que je pourrais et d'en récupérer par un copié collé la signature chiffrée. Ainsi la figure du carré s'écrit "carré |136,68,0 | 68,136,0 | 238,102,0,false | 136,204,0 | 170,136,0 | 68,238,0 | 238,238,0 |". Cette signature allait pouvoir éviter, d'une part de stocker de nombreux fichiers image (3), mais d'autre part aussi, allait permettre à Julien d'installer la notion de reconnaissance des figures, sachant que chaque figure se signalait par ses angles. Si tous les angles d'une figure étaient recouverts par la position d'une pièce, alors elle était considérée par le programme comme en place (4). Ce programme d'édition des figures est en ligne ici, vous pouvez, tout comme je l'ai fait, composer des figures "à blanc", récupérer leurs paramètres, et même, si le coeur vous en dit, me les envoyer pour que je les insère dans le fichier encyclopédique des figures existantes.

Une fois ce programme livré, je commençais rapidement à créer quelques figures. Pendant ce temps Julien construisait le jeu à proprement dit (5).

Pour reconstituer une figure, il faut déplacer les sept formes de base en maintenant le clic sur la figure. Pour les faire pivoter sur elles-mêmes, il faut cliquer à gauche sur les formes de base. Pour retourner le parallélogramme, il faut double-cliquer dessus. Les sept formes de bases sont légèrement aimantées les unes aux autres (6), aussi, si en déplaçant une forme de base vous ne la déposez pas exactement où elle devrait être, le programme rectifie avec précision l'affichage de cette pièce, ce qui évite, notamment, les chevauchements disgracieux. Vous avez la possibilité également d'afficher la solution si d'aventure une figure vous trop de fil à retordre (7). De même que pour passer à une autre figure, cliquez sur le bouton intitulé "nouvelle figure" et choississez dans le menu déroulant une autre figure — c'est souvent en passant à une autre figure que l'on finit par trouver la solution à une énigme qui nous a donné tant de difficulté auparavant, essayer une nouvelle figure et revenir à une énigme introuvée permet souvent de débusquer la solution récalcitrante (8). Dans le menu déroulant, en choisissant l'option Tch'i tch'iao!, une figure prise au hasard vous est proposée.

En tête de chaque chapitre figurent des énigmes de Tangram, cliquer sur l'une d'elles fera s'ouvrir une fenêtre dans laquelle vous pourrez tenter de la reconstituer. De même dans le chapitre 19 dans lequel il est beaucoup question du jeu de Tangram, les mots décrivant les énigmes sont cliquables et pareillement font s'ouvrir une fenêtre de jeu avec la figure mentionnée à reconstituer.

Julien et moi vous souhaitons de belles parties de Tangram. Tch'i tch'iao!


(1) La nuit est courte et le code est long, je remercie au passage Valery F. pour ses quelques judicieux conseils. (Retour au texte)

(2) on construit les fondations, puis les murs, puis on choisit les meubles, et enfin la couleur du chat, ben là c'est pareil, sauf que le chat est couleur #F7F7F7 , rien de magique la dedans, je vous assure (Retour au texte)

(3) et donc à vous de les télécharger (Retour au texte)

(4) c'est simple non ? en fait pour régler leur compte aux différents cas ça l'est beaucoup moins : il faut vérifier (a) qu'aucun sommet ne se trouve à l'intérieur d'une autre pièce (c'est-à-dire qu'aucune pièce ne chevauche une autre), (b) que chaque sommet de la figure du joueur est bien recouvert par une des pièces de la figure cible, et finalement (c) l'inverse, un bon manuel de graphisme et quelques insomnies vous en convaincront aisément. (Retour au texte)

(5) qui, une foi la première partie terminée, et à l'exception de ce qui est décrit dans la note précédente, est assez rapide : en effet beaucoup de ce que j'ai écrit pour la première partie sert également pour la seconde. (Retour au texte)

(6) c'est beaucoup plus simple qu'on pourrait le croire, enfin plus simple, enfin comparé au reste s'entend... (Retour au texte)

(7) je vous rassure : personne n'en saura rien. (Retour au texte)

(8) à défaut on reste bloqué par la seconde figure au point d'en oublier la première... (Retour au texte)

Les remarques de bas de page sont de Julien naturellement.

Retour au texte