Résoudre

Vous connaissez le Sphinx de la mythologie grecque, qui soumit à Œdipe l’énigme suivante : « Quel est l’animal marchant sur 4 pattes à l’aube, 2 pattes durant le jour, et 3 pattes le soir ? ». Cette créature fantastique était un esprit malveillant : le joueur jouait sa peau. Dans le Labyrinticon aussi, un Fantôme soumet au joueur des énigmes. Mais ici c’est moins dangereux : ce qu’on joue c’est la sortie…

Comprendre

Vous avez peut-être vu le film CUBE ? Un groupe d’humains tente de sortir d’un labyrinthe cubique. Un des personnages s’aperçoit que chaque pièce est numérotée, et le groupe découvre que les pièces comportant un nombre premier sont mortelles ; puis que la clé de l’énigme n’est pas aussi simple ; enfin que les pièces du cube se déplacent de façon régulière. Eh bien le Labyrinticon, lui aussi, fonctionne…

Concevoir

Écrire un programme qui a pour objectif de sortir de tous les jeux du Labyrinticon, spécialement de ceux qui sont inextricables, voire pas encore écrits, voilà un défi qu’il faut oser relever. Est-ce réalisable ? La force brute ne convient pas ici, puisque la visibilité n'est que partielle, progressive et variable, et l'intelligence artificielle n'a pas d'espace pour s'entraîner. Il faudrait bien plutôt une part de cette bonne vieille intelligence humaine dans un ensemble d'algorithmes construits ad hoc.

Labyrinticon

Jeu de détente, de réflexion, et de programmation.

Labyrinticon est un jeu de labyrinthe gratuit, fonctionnant sous Windows, à installer sur votre ordinateur. Il ne collecte aucune donnée personnelle. Vous pouvez également télécharger l'application LabClient qui vous permettra de visualiser le contrôle externe du jeu, et ainsi relever le défi d'élaborer un programme de pilotage intelligent du Labyrinticon ; est également téléchargeable le code-source LabControl, en Visual Prolog, pour ceux que la programmation dans ce langage intéresse. Mais vous pouvez aussi construire votre propre application de pilotage dans le langage de votre choix, C++, C#, Visual-Basic, etc., du moment qu'il utilise la technique des named-pipes.

Labyrinticon est un labyrinthe 3D composé de 10 grilles 10x10 empilées. Il accepte deux types de joueurs : des humains, mais aussi des programmes.

Rien ne sert de courir…

Avec le clavier et la souris, pour trouver la bonne case où aller, la solution la plus simple, lorsqu'elle est disponible, consiste à résoudre des énigmes. Extravagantes comme au Pays des Merveilles de la célèbre Alice, elles mobilisent les petites cellules grises - du non moins célèbre Hercule Poirot : il faut en déchiffrer la logique cachée. Résumons selon La Fontaine : « Rien ne sert de courir ; il faut cliquer à point. » ;-)

Embarquement pour Cythère...

Jouer avec un programme, c'est autre chose. Non seulement il faut le concevoir et l'écrire, mais encore le munir d'une certaine  intelligence. Le mot est à la mode, mais le concept est fumeux à souhait. De quoi s'agit-il ?

Pour communiquer, ce programme mobilisera un jeu d'instructions très simple qu'accepte le labyrinticon : il peut demander à se connecter et se déconnecter, à charger un jeu ou une partie en cours, à aller à une case donnée, à décharger ou sauvegarder le jeu en son état actuel. En réponse à chaque demande de déplacement, après l'avoir effectué, le Labyrinticon informe de l'état du labyrinthe et de ses éventuelles modifications. Par exemple, à l'entrée dans une nouvelle grille, il fournit l'état des 100 cases de celle-ci, de telle sorte que le programme pilote puisse, à sa manière, la voir. Si, au cours d'un déplacement, quelques portes se sont ouvertes ou fermées, il les indique, et le programme peut intégrer ces modifications à l'état de la grille concernée. Si un ou plusieurs passages inter-grilles sont apparus ou ont disparu, c'est encore indiqué, et ainsi le programme pourra actualiser sa vision de la circulation dans tout le labyrinthe. Et ainsi de quelques autres événements.

À partir d'ici, ça se complique.

Voici quelques principes. Le programme, comme tout joueur, a un objectif : sortir d'un labyrinthe dont la configuration évolue sans cesse au gré des déplacements. Il va donc lui falloir élaborer une sorte de représentation de ce labyrinthe : comprendre, si l'on peut dire, le fonctionnement et l'usage des passages qui peut être complexe, comme un des jeux proposés l'illustre. Dans un autre jeu il va rencontrer un trou noir, dans celui-ci un carrousel, dans celui-là une simple symétrie de déplacements. Ce programme va par conséquent devoir tester cet univers pour y repérer des régularités et en déduire des règles de comportement ; ce qui, en fin de compte, est à la base du comportement intelligent tel que nous le connaissons.

Nausicaa aux bras blancs

Représentation, Conceptualisation, Compréhension, jusqu'ici chasse jalousement gardée des philosophes, voilà qu'il va falloir les transformer en lignes de code - dans cet univers heureusement simplifié ! Et si, transporté par un challenge aussi passionnant qu'imprévu, avec une représentation continue de ce qu'il fait, ce programme pouvait communiquer avec nous… On entre ici dans la science-fiction, mais dans l'univers du jeu tout est permis, ce qui signifie que rien n'y est défendu ;-)