Deux motos, une grille, et une seule règle
Le principe de Tron tient en une phrase : deux motos avancent sans jamais s'arrêter et laissent derrière elles une traînée solide. On ne peut que tourner à angle droit. Percuter un mur, sa propre traînée ou celle de l'adversaire est fatal ; le dernier en piste gagne. J'en fais un banc d'essai pour montrer qu'une IA d'apparence maligne peut reposer sur une idée simple et parfaitement lisible.
La collision : une simple lecture de grille
Tout le plateau est un tableau d'entiers, une case par cellule : vide, occupée par le joueur, ou occupée par l'IA. À chaque pas, tester une collision revient à lire une seule case — la destination est-elle hors du terrain, ou déjà marquée ? Pas de géométrie, pas de détection de contour, aucune boucle sur les traînées. Poser une traînée, c'est écrire dans une case ; vérifier un choc, c'est en lire une. Cette représentation unique rend le jeu à la fois trivial à raisonner et très bon marché à exécuter.
Une IA défensive, pas devineresse
L'adversaire indigo ne cherche pas à me piéger : il cherche à ne pas s'enfermer. À chaque intersection, il n'a que trois choix — continuer tout droit, tourner à gauche, tourner à droite — puisque le demi-tour est un suicide. Il élimine d'abord les directions immédiatement mortelles, puis départage les survivantes sur un seul critère : combien d'espace libre reste-t-il derrière chacune ?
Le flood-fill, ou compter sa respiration
Pour chaque direction envisageable, l'IA lance un flood-fill — un parcours en largeur depuis la case visée qui compte toutes les cellules libres encore atteignables. Ce nombre mesure la « respiration » que le virage lui laisse. Elle choisit la direction au plus grand espace et, à égalité, garde sa trajectoire pour éviter de zigzaguer inutilement. Résultat : une moto qui longe les bords, referme proprement les grands espaces et évite de se murer dans un couloir sans issue — le tout sans anticiper mes coups, juste en refusant les culs-de-sac.
Le bon algorithme au bon endroit
Il n'y a ni réseau de neurones ni arbre de recherche ici, et c'est le propos : un comportement crédible sort d'une heuristique de quelques lignes, adossée à une structure de données bien choisie. C'est exactement la démarche que j'applique à vos projets — préférer la solution la plus simple qui tient réellement la charge, plutôt que la plus impressionnante sur le papier. Un code que l'on relit sans peine, que l'on teste sans détour et que votre équipe peut faire évoluer en toute autonomie.