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 :
đ Script 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.
.128013y1-]/wi_qP+r 79fIg;2Rçà h)(pn0ld,4kjĂ©e!bmc:35a=o[.8t6sSĂčĂšuxv050F0L0Z0T0h0E0#0n0P0E0T0#0#0U010Z0h0B010406050#0)0O0O0T0m0b040$0V0E0)0 0V0C050f16181a1c140B04051s1l1v0f1s140F0h0+0@0_0{0}0y0h0s0y0E1J0y0Z12050/0N0E0L1E0`0|011I1K1M1K0Z1S1U1Q0Z0m1t0Z0y0@1f0#0B0T0C0}0u011W1G010q0;0L0C0T0O0L1Q1?1^1}1Y201U2325120a0n0k0m0V0B0V0#0h1i0C0n0-1;0m0m0L0P2q1l280C1t0f1/2D1,1.1-1R0F2a0}1M0C222n1Q1B1D0^1X2N0h2P0C0V2T1Q0B2w1t2B2D2+151@2r2V1~2!0m190E120n0c2A2/132.292;1Y2?2^2`0u2}1^2 2B2M01340T2_040n0R382C143b320}3e3g0n0H3k3a2/3c3q2`0S3u3m3w3o3d0V2@3f2`0!3B302:1F333G353h0o3L3n3O3p3Q3I3h0Y3U3D3W3F3H3r0p3$313(3y040c0D3-3N2W3)3R0c2|1m2~3C3.3_3:0c373~39403^2=3Y3g0c3j463l3M3x4b120c3t4f3v414a3*4k3A4n484i4r3;3K4u4h3E433T4A3V424j3;3#4F3%4H4x0c3,4L4p3P4x0u3?4R494T3R0u3}2+4v4C4I0u454%4B3/4*4e4-4G4q4!4m4=4M4@3Z0u4t4`4S3X4U4z504Y524!4E554w4!4K5a4)4U4Q5e4/4x0R4W5i4N3R0R4$3 4.5o3Z0R4,2~1w2)1l2T2G0F1.2L3E0P2#261t5C1u5A2-4n055I0-2*4{1Y0I120-0q3u0n5t2=0q120+0V0h2o230s0L3u5%1Y11040A5=4?33121k5Q5|0}5^0G5#5?3p121$2P5{5V6212644n5$613d125I0E1j6a606c015^0z0Q3@3c0g2`0n6z6b51010#0F12020j0)0V0Z0t6H6J6L6N6K0t0n0v225+0h1V0_0n1M0#0Z1V0-0?5I3G0F6n0K0L0?6)0n6W5.6;6Y0T0@0`5;4X3c6E6y6z730n0A690L0G1;6m0C2P0z0n220n0s0(0m1^0Z6!6:6|0#7o160m7n0?0N6,0#0X0n6Q6P6I6R7B0t3B74666j046@2Y0#656i0V120U7P6q5^0W0e7H737J5X040q3G7U6C0C687*56010V6x042Y7.3x0N127k0C5:6B7/5^5`6p7+7`04190*7 3c81893E0O0h125m5y6i637^4C681J6o2+6h6q7R040d8l3(8e4k8c3(6s6f8q7J0C858e5 2-8j12828K6q7,048J8i7V6e8w428n0s8p2~8r6C8t0l8W1~8y045x397J6s6t7Z746A6i7$7(0m8*5}040P8}0}7;127@6g8F857|7~83808M8A428H0T889b8a9d9j8d8f048h8/8L048D8#8F6k1f6n6~8E7Q128v966i8,5r9r8U040z9u398$7/8G128I9e1~8b9m3/5~9U5@8V9F8P9x7b8!9O7J8(91018,8.2C8:120z8=4u8@9|9P3c7$0h5!9%6C9W8O7+7-9X3_8ka39Q6k9!6d9L9/8t0M7Tac9k5_af7K77apab9B9(8 9y7c9A8Ta49^6u9{9}aF9w7L5,6^ap8t0Xap8Q0T0B0B220Fas8M8NaAad040EaV9t9/8Q90a99V9^0z8?9~3E7$2w0Z0)0m8S9,6i8Q7M0C7O4u4(3(7$5Za(5)7?0C0P2w250C6%0ia~b0a69caoa+8~0s0m0;1Ua$9N2Ca:9Ya!8oaz9JaBa%am8maw9*by9?9s9`5n1~7=7Ibl0}71047FbS7D6L0n0rb90m0Kbc6%2s1V0c0n0Z0V1h7o1U6*6}0?a~7o0F02030R0p0t0)2P0n7w0O0N0L7zbT6O6MbU7GaE8^avbgai7Sa(5*aJ2Y0T9abianaXbz9Q852da$cpbHavbnbpbG5UbA9Mchbw8ZcA9@bBaua7bE9za$a.cbbu3_8`7)bCbva#bO6r9$cKaZa*c#3c93b8cEcecY5^aD4%aG8_94a2c(bDcy0Ebqc.120WaOa8cn3E5^0ed0cYa)a$7YcV3_ajalc_3(8t9Ed38x9o9IcwbAc:9v6i0P0c12030n2o0@1V0Cb_b{0t6:7m1@0?b~1Vc1c3a/c=cxboc|cH9sd7dk8Xa!dadUaY3xaec~04dbdgdd120ldfdr6q9H5#9|7Jdtdv0n1j0n0T0Jb,b$b)0xdx6{0+3f0La^3Bb2cS5Y0Lc^d/7+b75:2P2w0ic{c}dVa,bkeo8~dL6:cOdq477JbM7!cYbQc67Ec96T6V5,1VdJ7hdQ1Ub%2sb!2Ye77t2t0/cz0n0C0*2r0V0%eX7f6$6v3EbQaFeN2!c22weOet0#797g0B0_0w7l7uc00Vc27oe20EdCb|0:2t0-e*3(e,9}6Z6#b$e?eO6+0m6-7c6/0?0Aa@e`6:7edH0#6/7fa`4g6ifc9|1@7k0O0(1,c47Ac9eD6La/aHfy3h9-cgdc2=cs22cud104e?cOfNdsdu04dwbX2p0h3f5-0T2q2sf5b}b em1Vbbe`6XeO9q3l7Ia|12f_cf04d.a{9K0WdZcq3c8,f fQc?7%cUd*2=9)cNfT1Yc*95gk33981^cmd!d49ler678RcOd)ef7/cT8|gogBargJ7:7=grgF7_7{gvdS9KcvcBaZfPcI0zgE4706g16qd^f)2i0_0P6Y7ofh0.6|0E0P0)eNb/6?e6a^6_0?0T1h2wb:7qbh3 g)6CgHcEgLgAcZcJgQbD6lgngs92gOfPcRglfZf0c3h7gcgy04ewg09}aHg4d%gbdoaZhdgx8B12d6fYhjaydag5g7btfR8uapd;6ghp1Yg+dwe`0Tg/6!6{etdN7!g2b8ba0Lb#0Lbfcja fXd8g3eMgUbAbsggavhHhvhJhgg8cLhN9+hFancP8qhY0}h!0n2Ybab!22b$h66?h^hu3lg(h-6qa=0.a^hohBh}3L0f5S0L2D2(iF5B1C5D2G2J2E0T1TiI0f5C14iS0.0:0=04.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Ctrl+Clic pour inverser les colonnes)