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.
.128013g[ r);/(lo4,6Ib=ax+5utP7e-h0mnkiç:Séq.èy1cd32!à 8ù_wvpf9R]js050R0z0w0r0G0j0+0d0Q0j0r0+0+0q010w0G0#010406050+0v0D0D0r0e0O040J0k0j0v0 0k0E050h16181a1c140#04051s1l1v0h1s140R0G0!0@0_0{0}0_0E0b0v0r0b0z0A0#0O0w0B1j0d0B0G0b0B0j1X0B0w12050/0p0j0z1E0`0|011W1Y1!1Y0w1*1,1(0w0e1t1S0@1f0+0#0r0E0}0T011.1G010$0;0z0E0r0D0z1(23252a1:2d1,2g2i120a0d0x0e0k0#0k0+0G1i0E0d0-210e0e0z0Q2D1l2l0E1t0h1S2Q1}1 1~1)0R2n1H0G0E2f2A1(1B1D0^1/2!2$0E0k2*1(0#2J1t2O2Q2`15242E2,2b2:0e190j1(0r1V2J0$0}030Y0Y0Q2;0z1!2/0k0A0P3l120d0P1l0r2{2~132}2m301:323436380z3a013c3e3g3i2%3l0A28040d0T3r3t253v2O2Z013A0r351t370B393b3d3f0-3K2:3M0S3o0S3S2N3u143W3y0}3Z3#053%3)3G3+3J2#3L3m0l3o0l3@1m3_3w2 1F3z0k333!3C3(3E3*3I3-463/3m0u3o0u4c2`3`2~3X3~4m423H3,3h4s3k3m0n3o0n4y4e3{4h3}4j3B3$3D3F4G453j3M0y3o0y4P3U4A3x4S3Y4U4l4W4n4Y444r4#3m0W3o0W4*2P4,4g2-4/4k3 414o434q4I4`0A0%3o0%4 3V4B3|544V404X4p4H3.4K3l0C120P0C5h514C4:565o595q4J3M0P0P5v3q0h3s3^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#6P6C6R5c0T5u046`5^6l4i6=6a5~5W6)0T5J6|5L5N6j6/4-6!5m725E6(5s0T3O7k6~6:707f5D5V5/755=0T3?6.5i7d6;7q5}7h747j610T637a6x6 4T717r6D6S3N6f0T6h7K6L7A7p4;6?6%7F3M0T6t7)7n7Y7N7C6Q6q5X0T6H7?7,527B7!7g7s6E3N6U0T6W7W6Y7-5l7|7P6^7=6+0T6-847c7`7Z5C7D7~7R0S6{8n7_5R7/6@7;6)0S778w8q5*6O7}7Q5c0S3O8F5h1w2^1l2*2T0R1 2Y5k4H2)1C1t2@0z2_3u651t4H8Y2m0G0R0}3d2O5H3C8)8+8a6)5J0d2r0z8;8u5s773@7M010F120-0$8!0d6y310$120!0k0G2B2g1N8!981:11040i9i900E121k7b8%8h0}9l0m969j3}121@2$9o7o9w129y9t979p123f0j1j9E9t9A019l0f0I8!149S3W8:018,2~7(8/8*9%8=7j298_8{7i9*2Q5N900Z3o0d9}9F860+0R12020L0v0k0w0ga4a6a8aaa70g0d0(2f9c0G1-0_0d1!0+0w1-0-0?3f4j0R9Q0K0z0?as0daj9faAal370Q0`0z9Y9 2E9$9(253:9+9=7%3m3;8^2h8`9-8|aR9^9u3Xa19|9}a,0d0i9D0z0m219P0E2$0f0d2f0d0b0N0e250wanaz0@aJ0?160eb30?0pav0+0M0dadaca5aebh0gaL9!4BaO0Y8-48aSa!9?btaX2iaT7t5s613Sa-9T9q04aD2#0+9z900k120qbM9G9U120c0)bn2|9#9,aP0E3M6f5nbqa#4u9:aYbA7 b(5$bF9092040$4jbR86bH0jb|9v010k9{042#c04C0p12b01JaKbo869l9ncec10Ec904190saM3Xcgcp5k0D0G125xcicq9Ic75*9C1X9R2`9LbSbO040AcB4.cu5vcs4.9V9JcGbGclcu9sbYbScrcycC04cY8Z909xcM68cD0bcF3ucH86cJ0tc-2bcO6|cQ539V9WbXc*bpb!br9)4Lbu8D5X4MbyaZda6)6tbEa-a,9Tb^b`0ec`3z9Ndp0}c312c69KcVca259hc$cR12chcZb}cW0rcodCc dEc~c{cv04cxdGc1c,dx9M049O9QcdcUbN12cLdWbSc|5LdTcz040fcTc=dycmdwd.5kc#d`5`9rdO9kcAd*b}9N1fd!dsc212c_e3c1c|5#d}dMd:d19t9Zd.bqbs0A6Hb)d5b+epb-bzbvaUeua%djeBc?c1b^0G95ecd/dFd3e404b dL2bdVd$bSbH0Qe09Hd:e8cJ0UbQeId{dNePdqeNcEd#eLdUe2eSeMdZa^e.3U9T9V9Xekcpend70A6Uerb/7R4|ddf55cf3b=eCfdbG9b9daEeWe9040MfjbH0r0#0#2f0RfjcgeKe`dXeOegeQe;d?dXeVe*eX0f0fd2fxd48;eo6+f4exbB3M5ef8fR7 fPfc9~b@ca0.0v0ec)3UeD4Cfg9ebKfK2P5Qf0aQ6F6{fQdf8}5ufVf|5Hf`5$ele/0df@b$6F8~37b*bw3l8@9;fW7R5I1(64f#0494e80E9ac50E0Q2J2i0Eaq0YbJ0EbLfGbT9mfn120b0e0;1,fufCf+ffe,c:e_f=c+gN2Pf,c%e@c;fLcf12ej6xcyg75H3Of{9.g,evdeg/6Fg-glbSc4bFgDa*04blh0bja80d0ogt0e0Kgwaq2F1-0P0d0w0k1hb41,atb6aCfh46aA02030S0%0g0v2$0dbc0D0p0zbfh1aba9h2bme~g*d5eo5;d9g?3laWggg06F5=dif!eTf.fie%4.cJe$e=cjhY2#1MgSa(e(gFgDck9C2fgMh:fAe+gIgKh-e{g%d=gOfye-h^i1gWgPgZh~gUeYhIemhKf10PbDgbesgdihg;f960gk3sb?bSdmb{h!c.eNi5gpdriw2bdugsiAbIhngBh^e}g)iefNigb(ijio8?4vf hO0Pb;ireCdldveHh(f-04h|0jgLgD9l0cgGiyi.120)i:h;iBh`eXbWiC1:e!h%fDcId(fjd,iKe80Q77030d2B0@1-0Ehqhs0gazb2240?hv1-hyhAf;a(g+6FdhiRgh6rdchRiWdhfZfdgXd~i*gJi,iac!bUi;fzg5h/i^i;fFi|gEi~i(5kc^j2i2d+dQd-c=eB9Tja12jc1U0r0*hghahd0Vjd370!3!0zf(jtf?iff^3leqjyhSk5injz5:eqg3e k3g83lf3k7iWf7jCet0Pfb9_it933Egpgr1N2$2J0Yi+i-jWd|jRjIjrazh^g(4ehJiOk40PfPkkkofUknilfYkr86g{dkg}a2g hGhDaeagai9d1-jpa}jK1,hb2Fh846f(k?0/h}8^0s2E0k0X8^a{apk1bZkNkh6`hNetlaiVlcg2kXc1g~fdk=2:hz2Jk?kH0+a=a|0#0_0Hb1bahx0khzb4j`0jjiht0:2G0-l6fM9-eo76lbgdlOlelQ8~g_a0k$lk37aohalqk?au0eawa^ay0?0i0w0vluaza`jn0+aya{f*5(kMlMf17klPeym0lSm2g^lha)lXeC24b00D0N1}hBbgk(mihElK8(kg7(hUkRlQhQb.kb7uiq3PdkdXl{3P9Th$gpcl2qh^fwgThX04lqkJmlaNmn3m7Im1fSmR49m4mU3NbDjFj-jbh40E2C0G3!9e0r2D2FlFhuhwkB1-gvluakk?dSkLiNl~k47UmT7 n2mXn4iYmxhWeMm@eZbPe8i/i_jWc|m}j%86iudoi 9BdYe6e^eZc4d_j3dHdzccmHi;mAh d:jYnxeE12dniGa:nudvmAjH68clcbdBkDe)jWbHnDib0fnG5Pl}b#7(jxg6ikm2jBmtk87)mwg4g#mPl87(k6n,iS7j4%n67R7?mwis86j.04jc0x0_0Qalb4l$0.b50j0Q0vk=hjaCj~f(aF0?0r1h2Jhk0+kIidg5jv80n3o2kmn:hO82o4myksb_ivjZjInMi?04i6mBfEnsg!i7bNnvnPgPmMoQiLm~ozmQ3NkQn}mu7jkToFlckWn9djgPncoQnhkFixoPnV04jTi`nra@oWh.dDp2nd04j$oXj4cKj6j)96nQ2bo7jclu0rocan37kHmOo.n)aVf`mqey8nkak8pBeAi!dX2#gu0zh90zgziIgCp1mIp8ixo{p1oSpke+p0o~fBoRiGi9mN9KpX0}pmg6h6h82fhaow0?gApPo)n^pvd6k48woC8Egfo=gdp a%n@mJmmn`aVg-pzmY8FpChOqfpFnanI042Jl/f)iGpUp`f=0h8$8J8X8L8U1l0w8OqA2W2R0r1+qx0h8M9Z0-k|0=04.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)