{"id":11,"date":"2009-01-10T21:47:03","date_gmt":"2009-01-10T20:47:03","guid":{"rendered":"http:\/\/pas-bien.net\/blog\/?p=11"},"modified":"2011-01-07T13:37:30","modified_gmt":"2011-01-07T12:37:30","slug":"resolveur-de-taquin","status":"publish","type":"post","link":"https:\/\/pas-bien.net\/blog\/2009\/01\/10\/resolveur-de-taquin-11","title":{"rendered":"<!--:fr-->R\u00e9solveur de taquin<!--:-->"},"content":{"rendered":"<p><!--:fr-->Je ne sais pas si quand vous vous lancez dans une \u00e9nigme et que vous ne trouvez pas la solution, vous finissez par juste vouloir la r\u00e9ponse pour passer \u00e0 autre chose. Ce f\u00fbt mon cas r\u00e9cemment avec : l&rsquo;<strong>\u00e9nigme 135<\/strong> du jeu <strong><a title=\"Site officiel du jeu\" href=\"http:\/\/www.nintendo.fr\/NOE\/fr_FR\/games\/nds\/professeur_layton_et_ltrange_village_9436.html\" target=\"_blank\">Professeur Layton et l&rsquo;\u00e9trange village<\/a><\/strong> sur <strong>Nintendo DS<\/strong>.<\/p>\n<p>Quand je suis bloqu\u00e9 comme \u00e7a, j&rsquo;aime pas non plus qu&rsquo;on me donne la solution b\u00eatement. Je pr\u00e9f\u00e8re un compromis (un peu geek certe) : faire un programme qui va r\u00e9soudre l&rsquo;\u00e9nigme \u00e0 ma place.<\/p>\n<h3>Solution<\/h3>\n<p>Pour ceux qui <strong>viennent de Google<\/strong> et qui en ont rien \u00e0 faire de mon code, la liste des \u00e9tapes pour r\u00e9soudre l&rsquo;\u00e9nigme est l\u00e0 :<\/p>\n<p><p style=\"border-top: 2px solid rgb(65, 105, 175); border-bottom: 2px solid rgb(65, 105, 175); padding: 5px 20px 5px 45px; background: rgb(223, 235, 255) url(https:\/\/pas-bien.net\/blog\/wp-content\/plugins\/NiceWeb2CSS\/icon\/world.gif) no-repeat scroll 15px 50%; text-align: left; color: rgb(102, 102, 102);\"><a href=\"http:\/\/pas-bien.net\/blog\/wp-content\/uploads\/2009\/01\/solution.txt\">Solution \u00e9nigme 135<\/a><\/p><\/p>\n<p>Pour comprendre la repr\u00e9sentation du taquin :<\/p>\n<table style=\"text-align: left; height: 138px;\" border=\"0\" width=\"311\">\n<tbody>\n<tr>\n<td>\n<p style=\"text-align: center;\"><a href=\"http:\/\/pas-bien.net\/blog\/wp-content\/uploads\/2009\/01\/135e.gif\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-133\" title=\"\u00c9nigme 135\" src=\"http:\/\/pas-bien.net\/blog\/wp-content\/uploads\/2009\/01\/135e.gif\" alt=\"\u00c9nigme 135\" width=\"159\" height=\"128\" \/><\/a><\/p>\n<\/td>\n<td>&lt;-&gt;<\/td>\n<td>\n<pre>&lt;&gt;&lt;&gt;@\r\n12^@\r\n34v@\r\n&lt;&gt;&lt;&gt;@<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Code<\/h3>\n<p>Pour ceux qui sont int\u00e9ress\u00e9s par comment j&rsquo;ai fait, voici une br\u00e8ve explication :<\/p>\n<ol>\n<li>Il y a trois listes importantes : celle des taquins g\u00e9n\u00e9r\u00e9s, celle des taquins \u00e0 explorer et celle des taquin qui sont dans la position finale (juste avant la sortie).<\/li>\n<li>On ins\u00e8re la position de d\u00e9part dans les listes.<\/li>\n<li>On explore : c&rsquo;est \u00e0 dire qu&rsquo;on g\u00e9n\u00e8re tous les taquins possibles \u00e0 partir d&rsquo;un autre.<\/li>\n<li>Les nouveaux taquins ne doivent pas correspondre \u00e0\u00a0 un autre d\u00e9j\u00e0 existant. Si ce n&rsquo;est pas le cas, on ajoute le nouveau \u00e0 la liste des taquins trouv\u00e9s et \u00e0 celle \u00e0 explorer.<\/li>\n<li>Si certains sont en position finale on les ajoute \u00e0 la liste de taquins finaux.<\/li>\n<li>Si il y a un taquin (ou plus) dans la liste \u00e0 explorer, on prend le premier et on retourne \u00e0 l&rsquo;\u00e9tape 3.<\/li>\n<li>Quand il n&rsquo;y a plus rien \u00e0 explorer, c&rsquo;est qu&rsquo;on a fait le tour des possibilit\u00e9s de mouvements. On prend le premier des finaux et on affiches les \u00e9tapes qui ont conduit \u00e0 sa cr\u00e9ation.<\/li>\n<\/ol>\n<p>D\u00e9fauts du scripts :<\/p>\n<ul>\n<li>La repr\u00e9sentation du taquin est un tableau de caract\u00e8re ce qui n&rsquo;est pas tr\u00e8s propre mais \u00e7a marche.<\/li>\n<li>La m\u00e9thode n&rsquo;est pas tr\u00e8s intelligente, c&rsquo;est du brute force qui t\u00e2che mais pour une fois j&rsquo;ai fait un brute en it\u00e9ratif et non en r\u00e9cursif.<\/li>\n<li>Les solutions ne sont pas forcement les plus courtes.<\/li>\n<\/ul>\n<p>Pour le dernier point, j&rsquo;essairai d&rsquo;y rem\u00e9dier si j&rsquo;en ai la motivation car \u00e7a va prendre du temps (pour rien, \u00e7a on peut le dire).<\/p>\n<p>Voici la source du programme, c&rsquo;est du <strong>python<\/strong>.<\/p>\n<p><p style=\"border-top: 2px solid rgb(192, 192, 192); border-bottom: 2px solid rgb(192, 192, 192); padding: 5px 20px 5px 45px; background: rgb(240, 240, 240) url(https:\/\/pas-bien.net\/blog\/wp-content\/plugins\/NiceWeb2CSS\/icon\/download.gif) no-repeat scroll 15px 50%; text-align: left; color: rgb(102, 102, 102);\"><a href=\"http:\/\/pas-bien.net\/blog\/wp-content\/uploads\/2009\/01\/enigme-1351.py\">enigme-135.py<\/a><\/p><\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/creativecommons.org\/license\/cc-gpl\" target=\"_blank\"><img loading=\"lazy\" class=\"size-full wp-image-36 aligncenter\" title=\"Creative Commons GNU GPL\" src=\"http:\/\/pas-bien.net\/blog\/wp-content\/uploads\/2009\/01\/cc-gpl-a.png\" alt=\"Creative Commons GNU GPL\" width=\"88\" height=\"62\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/creativecommons.org\/license\/cc-gpl\">Programme sous Creative Commons GNU GPL<\/a><\/p>\n<p><!--:--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je ne sais pas si quand vous vous lancez dans une \u00e9nigme et que vous ne trouvez pas la solution, vous finissez par juste vouloir la r\u00e9ponse pour passer \u00e0 autre chose. Ce f\u00fbt mon cas r\u00e9cemment avec : l&rsquo;\u00e9nigme 135 du jeu Professeur Layton et l&rsquo;\u00e9trange village sur Nintendo DS. Quand je suis bloqu\u00e9 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":398,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[29],"tags":[24,62,28,25,27,26],"_links":{"self":[{"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/posts\/11"}],"collection":[{"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":28,"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/posts\/11\/revisions"}],"predecessor-version":[{"id":21,"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/posts\/11\/revisions\/21"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/media\/398"}],"wp:attachment":[{"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/media?parent=11"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/categories?post=11"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pas-bien.net\/blog\/wp-json\/wp\/v2\/tags?post=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}