important
liste/tableau
tuple
Démineur
On souhaite générer des grilles du jeu de démineur à partir de la position des bombes à
placer.
On se limite à la génération de grilles carrées de taille \(n \times n\) où \(n\) est le nombre de bombes du jeu.
Dans le jeu du démineur, chaque case de la grille contient soit une bombe, soit une valeur
qui correspond aux nombres de bombes situées dans le voisinage direct de la case (au-
dessus, en dessous, à droite, à gauche ou en diagonale : chaque case a donc 8 voisins si
elle n'est pas située au bord de la grille).
Exemple
Voici un exemple de grille \(5 \times 5\) de démineur dans laquelle la bombe est représentée par une étoile :
On utilise une liste de listes pour représenter la grille et on choisit de coder une bombe par la valeur -1.
L'exemple ci-dessus sera donc codé par la liste :
Python [[ 1 , 1 , 1 , 0 , 0 ],
[ 1 , - 1 , 1 , 1 , 1 ],
[ 2 , 2 , 3 , 2 , - 1 ],
[ 1 , - 1 , 2 , - 1 , 3 ],
[ 1 , 1 , 2 , 2 , - 1 ]]
Compléter le code ci-dessous
La fonction genere_grille permet de générer des grilles de démineur.
On pourra vérifier que l’instruction genere_grille([(1, 1), (2, 4), (3, 1), (3, 3), (4, 4)]) produit bien la liste donnée en exemple.
.128013a3=gvèuth0x[/àqj8kç).éb6r7 +pcR!5l:Sf(ms1_i2n]ow;ey4dIù9P,-050#0Y0i0b0R0I0O0B0E0I0b0O0O0d010i0R0D010406050O0h0N0N0b0z0Z040K0V0I0h0 0V0T050n16181a1c140D04051s1l1v0n1s140#0R0f0@0_0{0}0_0T0e0h0b0e0Y0+0D0Z0i0j1j0B0j0R0e0j0I1X0j0i12050/0x0I0Y1E0`0|011W1Y1!1Y0i1*1,1(0i0z1t1S0@1f0O0D0b0T0}0S011.1G010L0;0Y0T0b0N0Y1(23252a1:2d1,2g2i120a0B0)0z0V0D0V0O0R1i0T0B0-210z0z0Y0E2D1l2l0T1t0n1S2Q1}1 1~1)0#2n1H0R0T2f2A1(1B1D0^1/2!2$0T0V2*1(0D2J1t2O2Q2`15242E2,2b2:0z190I1(0b1V2J0L0}030Q0Q0E2;0Y1!2/0V0+0P3l120B0P1l0b2{2~132}2m301:323436380Y3a013c3e3g3i2%3l0+28040B0S3r3t253v2O2Z013A0b351t370j393b3d3f0-3K2:3M0c3o0c3S2N3u143W3y0}3Z3#053%3)3G3+3J2#3L3m0!3o0!3@1m3_3w2 1F3z0V333!3C3(3E3*3I3-463/3m0H3o0H4c2`3`2~3X3~4m423H3,3h4s3k3m0y3o0y4y4e3{4h3}4j3B3$3D3F4G453j3M0A3o0A4P3U4A3x4S3Y4U4l4W4n4Y444r4#3m0r3o0r4*2P4,4g2-4/4k3 414o434q4I4`0+0(3o0(4 3V4B3|544V404X4p4H3.4K3l0k120P0k5h514C4:565o595q4J3M0P0P5v3q0n3s3^4+4f5A554E584Z4_473l3O0P3R5M3T505Q5k4D4=4F4^5b5X0P3;045;5y5)4.5+5n4?5p4!5:495?4b5$5O5(4R535{574@5a5r5H4v5?4x644d5P67315B5T6b5F5c0P4M5?4O6i4z5_686n5,5U5.6d3m0P4%5?4)6w4Q5j5`6A5|5-6c5G6F4|5?4~6K6k6M6z5S6B6p5 4t3l5e5?5g6X666Z6m6#6P6C6R5c0S5u046`5^6l4i6=6a5~5W6)0S5J6|5L5N6j6/4-6!5m725E6(5s0S3O7k6~6:707f5D5V5/755=0S3?6.5i7d6;7q5}7h747j610S637a6x6 4T717r6D6S3N6f0S6h7K6L7A7p4;6?6%7F3M0S6t7)7n7Y7N7C6Q6q5X0S6H7?7,527B7!7g7s6E3N6U0S6W7W6Y7-5l7|7P6^7=6+0S6-847c7`7Z5C7D7~7R0c6{8n7_5R7/6@7;6)0c778w8q5*6O7}7Q5c0c3O8F5h1w2^1l2*2T0#1 2Y5k4H2)1C1t2@0Y2_3u651t4H8Y2m0R0#0}3d2O5H3C8)8+8a6)5J0B2r0Y8;8u5s773@7M010s120-0L8!6y2b0W3o96900T0L120f0V0R2B2g1N9b7o0}11040M9m860T121k7b8%8h9o120*8!0B973z121@2$9s9z019p9C9x9E9c123f0I1j9J9x9F9A040u0J8!149X3W8:018,2~7(8/8*9,8=7j298_8{7i9/2Q5N90993P0Ba29K3X0O0#12020p0h0V0i0Xa9abadafac0X0B0F2f9g0R1-0_0B1!0O0i1-0-0?3f4j0#9V0w0Y0?ax0Bao9jaFaq370E0`0Y9%a49+9-253:9:9`7%3m3;8^2h8`9=8|aV9}9ya5a7a1a2a:0B0M9I0Y0*219U0T2$0u0B2f0B0e0g0z250iasaE0@aO0?160zb70?0xaA0O0v0Baiahaaajbl0XaQ9)4BaS0Q8-48aWa(9{bxa#2iaX7t5s613Sa;9Y3Y9f9haJ9DbK0V120dbP909p0m0Ubr2|9*9;aT0T3M6f5nbua)4u9^a$bE7 b*5$bJ9092040L4jbU9nbL040Ib~860Va02#c39L0T0x12b41JaPbs869p9rcgc9cb04190la45kcicq4.0N0R125xck3X9Nc84C9H1X9W2`9Qb bR040+cC5kcv5vct539p0u9OcHbKca12cv9wb!b cscz5*9vcR2bcB9PcXcE0ecG3ucIc4120CcNcucw6|c,1:cT9#bZ8Zb#8;bw0+6tb+b$9?3M4MbCa%8D5Xdab@a;a:bKb`b|0zc|689Sds2bc512c7c/9ccmcd9lc)4.c(c$9tcmcod09ZcjdI9LcP04cydPcA9Bdv9G049T9VcfcW90cKcMdAb dR5LdUcr12cUdX3}dKdzd/dG12dOd5b 9u04c#d~chdWd+9t9S1fd#d?01cKc{e6dQc~5#d`cSd;d39x9(dUbud86Hdbb;7R4%dgeu5cesdldmdmdody95efdV9qdMc0c2dFek04cVc@c:dZeKcTebcK0GbTeHd:eJeN31c;c?3UbKc.d%d e8a{e*2Pe,d;9$enaRdcd86UetbzaY0+4|exf0bF3Me~eBeCfaeSaI2#0OeKcK0veKe00b0D0D2f0#eUd|d}e+9Rc1fqePebe00Efw0u0ud4ftbte|9.3m6+e di6)5ef4fM5sfKf9eE042J0i0h0ze23Uc^c9bM9ifefEe?d69=d85wbyfQ5H5ufPdd6F6{3Seoe32EeqfI3l8~37b,bAg2b/bDf57 5I1(64b_933EeKa09Ee%3z9e042#0E2J2i0Tav0Qfd0TffgldNfj120e0z0;1,fweQf#eSa@gHfye:eagz9Me^f+a,g0aU6F3OfLf_5Yg8dhg!5!gd9~b gjdngQa6a8bnbmagaeg=ak0$0Tgq0wgsav2F1-0P0B0i0V1hb81,aybaaHbN46aF02030c0(0X0h2$0Bbg0N0x0Ybjbphtg_gT5QgVb(6F5=gZb-3la!9_ga7R5;g*a/f$cD04gwgye.c_04eZhRf%hOhd9kd$f~eIfsf,d cm2qfwh%a,c*04gDgFh!fFe49!gI2PhMh/gLgQe-eRfud!a|h?h(h^fDe`czhy5HbHg4dchD0P49f^igbHfTgfb{b}e!5`9HgMiqdteTiudwc6f!h{fchYhQh#e#e_6xiafHgW3lb*ieey5:4vijg60Pb?3sfah|4.b`0ReGhVhNh;0IgGh 120mgBfvi,040Ui.gQfzfwbYix1:eXhUi1cJ12d*ej2bd-fwiHj0860E77030B2B0@1-0Thghi0XaEb6240?hl1-hohqhwf-b%5HdaiOhH6rdfhGf=6FdkiWiXdnfui)i+j4d1i-i/eMjN9Zi?i/fAi;i{i%5kedi gJ90j69PeCbKjb12jd1U0b0qh6h0h30oje370f3!0YfYjufGd7g16Gf;g(ewjDk6hKf}h@f iKhz3le~jzjEkgg$iP8?f8g+86b`94gi9ai^gn1N2$2J0QjLi5h.d{e$jSc0jsaEfBj85PiJk2iL0PfKkig(fOk8igfSkp9Lg-a3g/a.hug@bpalan9h1-jqb1gEi*awawg~46fYh1h40:k=8^0l2E0V0%8^a auk08(ke7(f{kShD6`kljA7=f{geb g:hLa;1,8^0Vhp2Jk{kI0Oa_b00D0_0tb5behnlqhq0?j_0Ijjhj0:2G0-l7kdkOkf76k5ld8@kVg6lSa+bKlliXarath0luk{az0zaBa|aD0?0MfXlyaEa~jo0OaDa iA3vkNf.g17klTlX28iSf1m3lZ90l#fa24b40N0g1}hrbkg_k(ajlO0Bib3m7wm4m8hFb:lg7uhKb^e/e1eWbSfyh*2fh,i/lufBmomq3NidmpiflXiilWm8iljHa390j-04jdg{2C0R3!9i0b2D2FlJhkhmkB0Bgrlyapk{dT4em0jwmriNmQkm7jiRmUf6m mzjJmBkBmDhTebbWi@kGdRm{j%b dpipjZirdZe9i4eWizmFcc25dEkGdHiFnpl~e@9!jYj99Lnmdri|3}e)kCiY53dxgol~nP31dCnxkCnEh-eSnDbVd;nGkMepl9mrjyn1mx7jjCmwkj7)kae{lQ7(eslclXk7n?g!7?n8mYb m!jd0)0_0Eaqb8l*0.b90I0E0hloh9aHj}fYaK0?0b1h2Jha0OkJi9n+n{mrkhn/n@f3n57 82o4nU1:nJgNc1cFnYn%fxnLc0i3e=3PbQnuoSe0mKi;kL5(m}bvm2kRoCo2kUo1ldkXlmn9e7h:k;jMnBeOngo|e(oNc=oPc%12jUi^gOnsjXncj$iBd(j2eKj)cHoJ0}o70Bly0bobas37kImMn,0+8nmtn6pvf@oF8mlimXeDfugpgr2fguhPmIp7o_h=itnoivh~nze5pRp0oUp3i79Dpj01plpHg~pJ1-ov0?pLoxh#mN8wpx7 p?m7pyp?a+kbi6lPm1iL8Fp@8mm6pB8EgYimnlcc0.fYnTeSnbp:e+0n8$8J8X8L8U1l0i8Oqq2W2R0b1+qn0n8M9(0-0/0;0O04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)