Zoom matrice image

image

On travaille sur des dessins en noir et blanc obtenu à partir de pixels noirs et blancs : La figure « cœur » ci-dessus va servir d’exemple. On la représente par une grille de nombres, c’est-à-dire par une liste composée de sous-listes de même longueur. Chaque sous-liste représentera donc une ligne du dessin.

Dans le code ci-dessous, la fonction affiche permet d’afficher le dessin. Les pixels noirs (1 dans la grille) seront représentés par le caractère "*" et les blancs (0 dans la grille) par deux espaces.

La fonction zoom_liste prend en argument une liste liste_depart et un entier k. Elle renvoie une liste où chaque élément de liste_depart est dupliqué k fois.

La fonction zoom_dessin prend en argument la grille dessin et renvoie une grille où toutes les lignes de dessin sont zoomées k fois et répétées k fois.

Exemples

Python Console Session
>>> coeur = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0],
    [0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0],
    [0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0],
    [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
    [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
    [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
    [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0],
    [0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

>>> affiche(coeur)

    * *       * *      
  *     *   *     *    
*         *         *  
*                   *  
*                   *  
  *               *    
    *           *      
      *       *        
        *   *          
          *            

>>> affiche(zoom_dessin(coeur,3))

                * * * * * *                   * * * * * *                  
                * * * * * *                   * * * * * *                  
                * * * * * *                   * * * * * *                  
          * * *             * * *       * * *             * * *            
          * * *             * * *       * * *             * * *            
          * * *             * * *       * * *             * * *            
    * * *                         * * *                         * * *      
    * * *                         * * *                         * * *      
    * * *                         * * *                         * * *      
    * * *                                                       * * *      
    * * *                                                       * * *      
    * * *                                                       * * *      
    * * *                                                       * * *      
    * * *                                                       * * *      
    * * *                                                       * * *      
          * * *                                           * * *            
          * * *                                           * * *            
          * * *                                           * * *            
                * * *                               * * *                  
                * * *                               * * *                  
                * * *                               * * *                  
                      * * *                   * * *                        
                      * * *                   * * *                        
                      * * *                   * * *                        
                            * * *       * * *                              
                            * * *       * * *                              
                            * * *       * * *                              
                                  * * *                                    
                                  * * *                                    
                                  * * *                                    
Compléter le code dans l'IDE pour obtenir les résultats ci-dessus :
###(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 : 5/5
.128013Acm/S;fù7z2q)é]hvbEp9CTi(u8o0g-.dw,y?*e[43Rlr_:6k5 =asP1tn0L0+0Z0)0y0u0Z010f0C0S0A0.0C0*0106060Z1011020S0)0g0u020E1513150e17190g0~1111050H0y0r0Z0c0S0#0$0$0!011q0*0E0A0#0E0N0F0u0K0)0q0{0Z0q0y0E0q0S1L0q0)0104050)0#0s0S0N1o1q1s1u1K1M1O1M0)1V1X0N1S1U0T1T1G1o0@0$0u0#0*1u0l011!1r1t010h0y1Y0*0#0d1/1T1`1|211$24260N282a1S0a0Z0%0T0C0u0C0$0y0`0*0Z0H1Z0c0C0T0T0N0c2w050e2d0*1T0e1G2M0)1=1;1?0H2f231O0*2j2t1:1l1n1p221u2X2Z2$1:0u2E2c1{2L2I2K2;2e2(2g0*2C0d0#0S1:0#1J2E0h1u030U0U2B2z2+2}0F0(3f1S0Z0(2I0#2M2^06052K2V1u2}0T2 311T330q3537393b0N3d0C3f0F1 040Z0l3l3n2=043p3r2{233u3w32340N3601383a0C3c0y2Y3e3g0Q3i0Q3O2@3Q3S2=3s013W303Y3A3!3C3(3*3,3H3g0P3i0P3=2J3@3q3_3U3t2~3}3y3Z3#3%3E3G3I0Y3i0Y4a3o4d2`1#3V4h3x053z3B3$3D3)3F3+2Z3I0W3i0W4t4c3T4x4g3v4i4B4k414n4I3-0F0j3i0j4O1|3R4v2x4f3{4z3~4D4m4G4o3g0B3i0B4)2L3^4w2)4/4T4A4C404E424H443I0v3i0v4}4+4Q513|544W574Y5a3g0(0D1S5q5f4 4-4R523X4j3 4l4F434J5p0(5s3k0e3m3?4*5v3`5j4;564?5E4!0(3K5W5u4,5P4:5A4=5D595F3f3/040(3;5K3P5N5!4.5Q5%5S5)4^3f475.495;5M4~5@5x5_4V5B4X4@4Z453f4q5.4s624b5?5h2|5$685(585}0(4L5.4N6i4u6l4y535R5C6q6c3I0(4$5.4(6w4P4e666n556C5n5+0(4`5.4|6K6k6M5i6O5l5T5*5V5c5.5e6X646y4S5z6o5{6D5o3J5r040l0D5Z6/5y4U6P6a5U6d0l5H6{5J5L6j6.6Z6m6A5`6Q6b6^0l3K7k6~7d6z6;725m7i5+0l5-7v7n507e7q6$5|6E3g0l5 7G7y5w6!7f6=7h743I0l6f7R7J5#7M7r6%5}0l6t7!7U5^6#697s7P7F6H0l6J7a2^2I2/0N2M2$2P0H2T3`3E2#1m1T7@2_2?7b1T3E840Z0y0H1u392K6F3Y8b8d6@6S202k0N8j6R5V1:626 0|040w0b0R0b0w0x0t0R0t0f633L65510C1S0!8H0Z8J2g0u1S0O8H8Q230$7702030Q0v0g108!8$0g8V6 8S040J8O8W1u8Y1S8*8%0Z0M8`8,868?018/0p8H3p903r8i018e2=7Q8h8c9a8k4!1 0Z8n8p7t9i8s3m967=989f9b1|3I5-4V997D6^3/9k298o9g8q6d9y8t7o1u0X1S2z0h8-9M010I3i9S7z3V0h1S0#0h250c0q0N9X7K8R1S0z9,5P9P0N1s3+9;4.8/0n0V959;9A0U8f469e9m7,0F479E2aa66(6d5 3O1i919O040h2C8=8u1S1*2Yan9T0C9V049_868Pao042z9^0*9`5x8/9~869r3Q5!a1a30F6f9z9u9h6d4qaa9G9B5+aQ5;1iah6 ajal0Tas9Y3t9P1L2va,9-23au1Sax2^az9T8vaq9+979TaH9 b12eaN9c3g6taRac5}4LaWbc7E0Fbaa#a$bl910*0s1S2/3+0)aF518/9:b5a?a.8w8y8A8C8E8Gby3`8/8UbH5^a/0Ea;bLaG1S0p8;aybn1S2j0Hbu2g8L048NbQ510$3K020m0A0C1ab.b:8 9sb21S0nb4b^b6aSaO6Hbb9H9n6d4$bfc3a7c1bkbm8ubp04br0*btb)9.040zb{aJa0b b80F6Uc2aY4!4`c7cv6dct5;aK4*aMcq9w3g6*cuaT5b8m9Fbg6^cJcCcp8jaO5qa5c8ad6F5rcycL5p6`3=a(9?9Rcj23av8Pc.3t9!040k0C0C0d0U1O0$0)b0b}bz929/b!3Vap0yc 0N0U2z1{0Tcid2bI1SbUa{bW040Xd61u9|aI4ubHb7cH3f77cK9I6F5Hc$dA5G9p894.c:1jc=010$0H8_8#8%8~8~2E0*0r0C0y1Z0A2Y0Zc~d01^ch2j1|0)0Z0X0Zald91o0q0#b.d14cducG0*6F3Kdzc4d cNabcY6re09La-dMdO3L110o0S0o2ach2y1Zd%dbdd0#dfdSdQ0g8~b|aL9tcUcr5/cXcz6F9D9le6bheA2M3ma%a}d8da0Uc_c{a=3`b$b(dl8.8T94cod|eydw0(af33a1dE5~e4aXc%e-eJed10ai1Sa*eSbM043Fdg3Qa|eaa^awaEbVaAemdc0Ndee cEeX04dsd{dhdvd~5paQe*aSe,0(aVeFeCfldGble@c+akamf6eMawe{5xf3a`f0bnce0T1|1Bdpd4clfO8vdodLdrevfd3_fj6FbafncP6Sbefse:6sfvfweLeaa~d9d0ePc`0dfOb$0GfR9#0u0ubYfObwf}e}14g2b`fW2?ex9gcVc1f$eG6^6Ge.f%5VcaeK1jfy2E0)0A0Tf5eWfCf8eQf_e!fid}6Fctgfft3fcxf*fpcB9qcTgcezcJgFf+5cdDe25pcR5Lfy9QfOc:fRc@gyf9aDg7fQdL8v0E0T261Yg,dkfIaAfTdh9{b`fg5?e#gOdw6|eBe:h4gUa7h4e=91dJe@dLdNdP8+er8+dUdWdY0Zd!1Zg:g=1Z0C0id$9@d$1L2Y0$0Z0$0{d-gy0ohxd/d;0$g989fZ7FdygRe,76gjgg7udye9d3hge?0Z0t0x0Z0T0o0u0o0)hHhBhJdX0$hjdReshMcFe$fk3Je0hRgVh~hUgG7kf-fxfChr0S1Yf@eRfBf28MfEbveYh`gb9vh}7vh5hSeEcOhV9i9Kgni7eaa)fAgvf:d80Earied3fGgug_i8g;iad`fXeab3gAewfYgC7Fe)8afoi17Gi3h6afcba$dmgxf^ihb#igiG9=c^f^c}f=iOgab_g-g|66iDiFi~ii8:i.d7dng,cndtgBh|7QfmiYgk75frisi4a!iwi*fye`i;e|0yj51uiIjt3{fKfMi`dHbRi}iTiCj7fUg~ikiUjc7Ff#jfit75f)jjh6bjjmf.dmi9ibgyf`1Sf|g.f~g00*bZjHjDiPd3f;eOj!j-j9fhjE2xhO3JgejOi4c6gJi!gmh#e^04gqgsiJ4*f1j:1SjYdbj?jaaL0e887?2:2I7`2I0)7|kq2R2N1W1Y7_81.