Chasse au trésor

Vous êtes un explorateur. Après des années de recherches, vous avez enfin trouvé l'île sur laquelle le pirate T. Dichot a caché son trésor. Il ne vous reste qu'à trouver les coordonnées de l'endroit où creuser !

En accostant au nord-ouest de l'île vous observez que celle-ci est parfaitement carrée.

Votre seul indice est la carte reproduite ci-dessous :

Carte

Vous vous empressez d'aller creuser à l'endroit indiqué sur la carte (1 km au sud et 3 km à l'est), vous trouvez un coffre et dans ce coffre... un autre indice : "BDHBDG" !

Vous en êtes certain : cet indice donne les coordonnées du trésor et utilise la même technique qui fait correspondre l'indice "HGDHBD" et les coordonnées (1, 3) de la carte.

Écrire la fonction tresor qui prend en paramètre une chaîne de caractères représentant un indice et renvoyant les coordonnées du point de l'île désigné par celui-ci.

Indices ?

Différents indices sont donnés sous les éditeurs... Mais un explorateur aguerri comme vous peut résoudre cet exercice sans les utiliser !

Exemples
>>> tresor("HGDHBD")
(1, 3)
>>> tresor("BHDHDD")
(4, 7)
>>> tresor("HHGHGG")
(0, 0)
>>> tresor("DDDHBH")
(2, 7)
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10
.128013:,êCkn9DàSAvBsuO8Hz;y7e62-0MwGr5_pag)R1i/é=mhb.4x+j*odt c(E%P3qlf050$0x0%0J0O0:0o0(0)0:0J0o0o0R010%0O0I010406050o0p0S0S0J0F0v040k0#0:0p150#0g0(020J0S0I0u0(0M0x1f0F0/0p0x0o050P1c1e1g1i1a0I041G1N051Q0P1Q1S1N1a0$0O0m0}0 11130T0O0K0T0:1*0T0%18050^0U0:0x1#1012011)1+1-1+0%1?1^1;0%0U0#0$1i1=0F1O0%0T0}1l0o0I0J0g130z011`1%010;0`0x0g1t0x1;2i2k2p1|2s1^2v0S2x040a0(0-0F0#0I0#0o0O1o1q0?2g0F0F0x0)2S1G2z0g1O0P2e2(0%2c2b2d0$2B131-0g2u2P1;1Y1!0~1{2=0O2@0g281Z1;0I2X1O2$2(391b2j1q2}2q320F1f0:180(0N2#3d193c2A3f1|3h3j3l0z3o2k3q2$2;013v0J3k040(0.3z2%1a3C3t133F3H0(0W3L3B3d3D3R3l0G3V3N3X3P3E0#3i3G3l0y3$3r3e1$3u3+3w3I0w3:3O3?3Q3^3-3I0r3|3(3~3*3,3S0h443s463Z040N0B4b3=2~473_0N3n1H3p3%4c4k4e0N3y4p3A4r4j3g403H0N3K4x2%1P371G2{2+0$2/3D0)282H0=1Z1O360x383p3V054Q0?4Y4s2q0f180?0;4!3}4k0D3l4/454t0;182,1E3+4@4)1|17040*4 4A3u18301Y0)0x553D520L0b3$0(5j0(3;3Y580H0S305d3)520c3V5l4:3g5o1f0X5w5m3)0#180R5D5y1|5q184h4G4(56135u5J4^2q5M043{5P065k5x5V57040Z5p5r5P5E465T5P5%503Q185+5B5U5@015G045I5=5/4k5X5O3b5K5S185v6268015X5Z395#5k634*180;4~6c5(5^040f5|5R5~4=045-395?6v0g580g5a5c5.6d525h5!5$5$6k1|4+6y4.6p5}6D6s6u3D5 0R616A6P130o2n04010s015s5:186L6h6N6^6B5n6y5p0J5C6U6v6!6Y5t18546I6q3E5A6~73465 0Y7c4t5A6z4Z6J180L7g2q5 0P0P7o5L0O184w6@6_6(016R0x1-6T6%6d6W6t706Z5H6$3p6`3)6*18010n6/775}6K5i6_6O7H7i0g7t13727K74536:7h6|5{7,7d187f7?7:0O5,7(7W6v5f7)5~187r825X7x7O7A7e867v4f7Z6^7A7C7E827I826!7N3A7P467R6,0E7V67787Y6M7!6j7$5*6}6 7G787+8G7X757/5z8D7=8J717^8k5_7}8M517m8m847s7`5W8d884y7!8h187D0o6H8w8K046?4q8A8B786W5`7j8p8a5H8252768;6C8U8P896d8b8$5)8}7~955e8Y9c7*8!8c7w8Z047_8Q3D5X4o7y5j8,042X0%0p0F9f998{7%8W69046b9r3)8|8V5!1G4$4X4I9S0P4L1G0%4N9X2-2)27292+0J1@9U4L1M5Q3D2X0S0H0;0J0f0x0H0T0.181y1A1C1E0(8@3A1P3q1N0q1q0I0x1n0(2u4Q2X0(9@2R0(0I1m0|2Q1u1^ae1q0#0U8/0F0m2k0%0(a1a3a61a0p0:3q1-040:00590O5balacaA0d4|0(0$0Q4Q0p0I0QasaVac0Xal3+2S0|0b0(ar9Ra%a/0Ja*2Q2S0(0m0x0F150)3G1_0@0}7D0p0Oa=0 a^2R0O1p0(0T3+0O0t1p0^1^0V0(0l302Q5la;3)1~1,1.1:9/7Q6+6-0E0i0s0n0i8v4Z0P9R3I0$1p2@a/a29R0|4#4R3Dbu201/2y788s6-bEbHa5bJ4R3Ib3bT2Ubt1.bXbx7Ab#bCbG4!b*4%0(0u1GaJ1aaJ0)0T0JaC2Oa~bc2TbN1_aLaX0F2R9Bb21q0U300_ah2Ub94Q3+bM0g0g0Q1_ag2X2i1p0$az0x0Vc00O3q0PaGa7040-1gae0X1zam1_b.cx46bWbwbZ5}b#0sb%b{bK2Vcz2O6F0(0jbrbUb:1 cYby8rbA0B0B0Nb(4Hb|4Xb4aBb6aVcca$aW0)0O3jc:b/cWb;c@7A0g0U6E0%9H0193dmb#c{c}dm5;9L4687dt9idv4k8I9E5}9tc(b+cF1TcLa90(a@ct0)aDdJ1X1ZbVdf21cZ6v2D2u2w182J0k0)cg0IaA0-0v2e1p4!4W5Q3a4ZbK9x4-dm6x5l7 3Y4`044|0o6o9g7-947k9F6y6FaO8:e98=5g8f8q7:c51n0H0U109o8o2%ej2qb#c~197#ea0K0J0pc49`0$2M2Ree8 9a919j01evei9x6n0F8TaK0@4|8m6x8~esdh6E6Gdy8?eiey5}6R0O7FdD96eU222Xeqer3Ib@bA6.e(a43M8_9w8Cel0%enepeM7ee_et1|dqew6i8g6d8ie.eT1^e?eIe!eK60fae{7S7Ue~e*7zf3eBf5eo1Ff87^fr6db#ds8zfg78fie/eJeafleWfDfq82b^ew7A8y9v8Ae#04eAeC0TeEeG0%fne`fp0YfFb!c`fe8+fh8-0{f-fX6=fwfK6V18f%eD0HeF0#eH9of:fUbAfI6hfffb136R9z9B9DfO6Vdjebdld e7dm6Wf4f6fCe66;9J9m048)4H7l040L9Ke:3Ygo30gqgy4kdogr4dg2eBg4g6g8gRgP6agBgDc^gZgG3:d02(d=4K4U9.0+1q1n0`0O0oaza?5la@0T2X0;1(220I0o0b7r0;0F0V0D0O0f160x1Y0J0V3+0K0Phahc0P0C0,0e0.0,0l0hd/0?g59`0M0p0;2s0g0O0A0s3+2@0F030e1pa|0F2Q1phxgweE9`0g1dhphrht0F0J2S180S0Qhv1_2UhzhB30hEhG9Ca}1G0J3IbdabadeB11b7ajah6L1W4T2|dec?dWg%2qdZ2F2Hd%d)16d,d.bfgl4Hg-3b5.d_f_04d{gY2qd}gte1e3e5ef808Lit5)aN5be(eh5=gff#0Oe(gIgme;0ZeqgB66iA9hgAeM65ePiqeReT0)eX6EeTiFf|gFe exfxfL58fNfoeai(f8eYikf.f=7Sc%iD9Ii/gff^ea0UiSiY8diUiP3De-i@i~g104i`dA7p7Mgbj0ewgg7Bf`8/gB9u8^f1iLj9jl7u9nj283040!gt58g9eTj8fJ6N9x8.i-8xf~jNj6jijMjB9k60iT82jfi%e^jo8tjqjPf{jvf jO8CiRfSf;dE8(dm5 jHjE8|jKeM6WjXjxf2i=9y0@gk92iCgO8NiMjEdugJ9M5_iHg*d_1T4J9Vg/4K0@0_0{04.
Indice (1)

Les lettres ne désignent pas un chemin mais plutôt une façon de découper l'île...

Indice (2)

Le nom complet du pirate est Thomas Dichot et ses amis l'appellent Tommy.

Indice (3)

Indice (3)

Indice (4)

On pourra utiliser quatre variables i_min, i_max, j_min et j_max qui évolueront selon la valeur du caractère lue dans l'indice.

A la fin du traitement, i_min et i_max seront égales et désigneront l'indice de la ligne cherché. Il en sera de même avec j_min et j_max pour l'indice de la colonne.