Ah oui je l avais oublie celui la... Le puzzle Eternity était un puzzle de 209 pièces sans aucunes images avec des formes géométriques triangulaires. Le fabricant faisait la propagande de ce puzzle en disant qu'il était impossible à résoudre, et que si quelqu'un arrivait à trouver une solution en une année, le fabricant offrirait 1 Million d'euros à cette personne.
Je me suis dit que 1 Million d'euros valait la peine de se pencher un peu dessus, j'ai donc écrit un algorithme pour tester toutes les possibilités existantes, le système était relativement simple, les pièces était transcrites en coordonnées, je n'est pas utilisé les coordonnées cartésiennes car les pièces avait toutes des angles de 15°, 30°, 60° et 90°, il était donc facile de transcrire cela sur des coordonnées dans les axes était de 60°, les coordonnées devenait donc des entiers faciles à transcrire dans le code. La rotation, les miroirs et les déplacements de ces pièces dans le puzzle ce fesait dés lors avec de simples addition et soustractions, pas besoin de trigonométrie du coup.
On connaissait la position de la première pièce dans le puzzle, il était donc facile d'agir par itération pièces par pièces en imbriquant les pièces autour de celle-ci et ensuite en utilisant un remplissage comme un escargot, toujours dans le même sens de rotation et sans jamais laisser d'espaces vides. Dés que le logiciel détectait une impossibilité pour introduire une pièce à la suite d'une autre, il revenait en arrière d'une pièce.
J'ai eu quelques problèmes de lenteurs du au PC et au langage de programmation VB6, j'ai donc décidé d'apprendre le C++ pour transcrire le code source sur Borland, la vitesse d'exécution était bien supérieur mais malgré cela mon ordinateur n'arrivait pas à suivre, de plus Windows plantait régulièrement chez moi, j'ai donc lancé l'application sur différents ordinateurs au travail en mode masqué. La programmation ma pris quelques semaines, mais le souci c'était la résolution, j'avais calculé que le système devait pouvoir régler la solution en 3-4 mois, malheureusement j'ai été pris de vitesse... En effet j'ai appris sur le net que deux mathématicien de Cambridge avait réussi à trouver la solution avec leur algorithme.... j’étais vert de rage ! J'ai stoppé tous les codes et remballé mon code source pour le mettre aux oubliettes, je me dis qu'un jour peu être je relancerai le code sur une machine plus performante pour voir si j'obtiens la même solution.
Aucun commentaire:
Enregistrer un commentaire