Je sais pas combien de temps il faut pour résoudre ce labyrinthe fractal à la main mais faire un programme Prolog qui le résout et exécuter le dit programme, ça prend moins de deux heures. :p
Sachant que je n'ai fait aucune optimisation, alors qu'il y a clairement moyen de faire un premier débroussaillement. Par exemple, le chemin sortant d'en bas à droite du bloc E ou les deux chemins qui se relient à gauche du bloc E ne servent strictement à rien. J'imagine que ce ne sont pas les seuls.
En tout cas, au vu de la solution, c'est clairement faisable à la main en un temps raisonnable, mais ça nécessite d'utiliser de bonnes heuristiques.
Edit :
Pour ceux qui voudraient juste un indice :
Spoiler
Il n'y a pas besoin d'aller plus loin que le deuxième niveau de récursion.Pour ceux qui voudraient un plus gros indice :
Spoiler
Au niveau 0, il n'y a pas besoin de rentrer dans plus d'une boîte.Pour ceux qui voudraient "la" solution (j'ai pas demandé à mon programme de m'en sortir d'autres, m'enfin c'est du Prolog, je peux avoir autant de solutions que je veux) :
Spoiler
([],minus) -> ([c],haut6) -> ([c],node6) -> ([a,c],gauche3) -> ([a,c],node7) -> ([a,c],node10) -> ([a,c],droite6) -> ([d,c],haut8) -> ([d,c],node1) -> ([d,c],bas7) -> ([h,c],droite5) -> ([h,c],node9) -> ([h,c],droite8) -> ([g,c],haut2) -> ([g,c],node2) -> ([g,c],bas8) -> ([c],node2) -> ([c],bas8) -> ([],plus)Oui, je code en franglais et je vous zute.
Je compte les entrée/sorties de gauche à droite et de haut en bas. La numérotation des nœuds vient du fait que j'ai géré les entrée/sorties du haut, de la gauche, de la droite et enfin du bas et j'ai numéroté les nœuds à mesure que je les rencontrais.
La première coordonnée est une pile désignant où on en est de la récursion.
