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
.128013]ik[v8o-)yqb.g=mzT?4r*sù97f,d :C5hwtcl0p_P3(a;ER/eS612énuA0t0+0E0K0c0O0E010Z0h0M0)0.0h0(0106060E1011020M0K0U0O020o1513150X17190U0~1111050D0c0f0E0L0M0T0x0x0p011q0(0o0)0T0o0Y0i0O0k0K0I0{0E0I0c0o0I0M1L0I0K0104050K0T0m0M0Y1o1q1s1u1K1M1O1M0K1V1X0Y1S1U0v1T1G1o0@0x0O0T0(1u0$011!1r1t010B0c1Y0(0T0q1/1T1`1|211$24260Y282a1S0a0E0Q0v0h0O0h0x0c0`0(0E0D1Z0L0h0v0v0Y0L2w050X2d0(1T0X1G2M0K1=1;1?0D2f231O0(2j2t1:1l1n1p221u2X2Z2$1:0O2E2c1{2L2I2K2;2e2(2g0(2C0q0T0M1:0T1J2E0B1u030P0P2B2z2+2}0i0#3f1S0E0#2I0T2M2^06052K2V1u2}0v2 311T330I3537393b0Y3d0h3f0i1 040E0$3l3n2=043p3r2{233u3w32340Y3601383a0h3c0c2Y3e3g0R3i0R3O2@3Q3S2=3s013W303Y3A3!3C3(3*3,3H3g0u3i0u3=2J3@3q3_3U3t2~3}3y3Z3#3%3E3G3I0H3i0H4a3o4d2`1#3V4h3x053z3B3$3D3)3F3+2Z3I0!3i0!4t4c3T4x4g3v4i4B4k414n4I3-0i0A3i0A4O1|3R4v2x4f3{4z3~4D4m4G4o3g0g3i0g4)2L3^4w2)4/4T4A4C404E424H443I0z3i0z4}4+4Q513|544W574Y5a3g0#0N1S5q5f4 4-4R523X4j3 4l4F434J5p0#5s3k0X3m3?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{6D5o3J5r040$0N5Z6/5y4U6P6a5U6d0$5H6{5J5L6j6.6Z6m6A5`6Q6b6^0$3K7k6~7d6z6;725m7i5+0$5-7v7n507e7q6$5|6E3g0$5 7G7y5w6!7f6=7h743I0$6f7R7J5#7M7r6%5}0$6t7!7U5^6#697s7P7F6H0$6J7a2^2I2/0Y2M2$2P0D2T3`3E2#1m1T7@2_2?7b1T3E840E0c0D1u392K6F3Y8b8d6@6S202k0Y8j6R5V1:626 0|040G0*0W0*0G0s0V0W0V0Z633L65510h1S0p8H0E8J2g0O1S0e8H8Q230x7702030R0z0U108!8$0U8V6 8S040C8O8W1u8Y1S8*8%0E0w8`8,868?018/0b8H3p903r8i018e2=7Q8h8c9a8k4!1 0E8n8p7t9i8s3m967=989f9b1|3I5-4V997D6^3/9k298o9g8q6d9y8t7o1u0d1S2z0B8-9M010J3i9S7z3V0B1S0T0B250L0I0Y9X7K8R1S0S9,5P9P0Y1s3+9;4.8/0j0F959;9A0P8f469e9m7,0i479E2aa66(6d5 3O1i919O040B2C8=8u1S1*2Yan9T0h9V049_868Pao042z9^0(9`5x8/9~869r3Q5!a1a30i6f9z9u9h6d4qaa9G9B5+aQ5;1iah6 ajal0vas9Y3t9P1L2va,9-23au1Sax2^az9T8vaq9+979TaH9 b12eaN9c3g6taRac5}4LaWbc7E0ibaa#a$bl910(0m1S2/3+0KaF518/9:b5a?a.8w8y8A8C8E8Gby3`8/8UbH5^a/0oa;bLaG1S0b8;aybn1S2j0Dbu2g8L048NbQ510x3K020l0)0h1ab.b:8 9sb21S0jb4b^b6aSaO6Hbb9H9n6d4$bfc3a7c1bkbm8ubp04br0(btb)9.040Sb{aJa0b b80i6Uc2aY4!4`c7cv6dct5;aK4*aMcq9w3g6*cuaT5b8m9Fbg6^cJcCcp8jaO5qa5c8ad6F5rcycL5p6`3=a(9?9Rcj23av8Pc.3t9!040r0h0h0q0P1O0x0Kb0b}bz929/b!3Vap0cc 0Y0P2z1{0vcid2bI1SbUa{bW040dd61u9|aI4ubHb7cH3f77cK9I6F5Hc$dA5G9p894.c:1jc=010x0D8_8#8%8~8~2E0(0f0h0c1Z0)2Y0Ec~d01^ch2j1|0K0E0d0Eald91o0I0Tb.d14cducG0(6F3Kdzc4d cNabcY6re09La-dMdO3L110%0M0%2ach2y1Zd%dbdd0TdfdSdQ0U8~b|aL9tcUcr5/cXcz6F9D9le6bheA2M3ma%a}d8da0Pc_c{a=3`b$b(dl8.8T94cod|eydw0#af33a1dE5~e4aXc%e-eJed10ai1Sa*eSbM043Fdg3Qa|eaa^awaEbVaAemdc0Ydee cEeX04dsd{dhdvd~5paQe*aSe,0#aVeFeCfldGble@c+akamf6eMawe{5xf3a`f0bnce0v1|1Bdpd4clfO8vdodLdrevfd3_fj6FbafncP6Sbefse:6sfvfweLeaa~d9d0ePc`0qfOb$0nfR9#0O0ObYfObwf}e}14g2b`fW2?ex9gcVc1f$eG6^6Ge.f%5VcaeK1jfy2E0K0)0vf5eWfCf8eQf_e!fid}6Fctgfft3fcxf*fpcB9qcTgcezcJgFf+5cdDe25pcR5Lfy9QfOc:fRc@gyf9aDg7fQdL8v0o0v261Yg,dkfIaAfTdh9{b`fg5?e#gOdw6|eBe:h4gUa7h4e=91dJe@dLdNdP8+er8+dUdWdY0Ed!1Zg:g=1Z0h0yd$9@d$1L2Y0x0E0x0{d-gy0%hxd/d;0xg989fZ7FdygRe,76gjgg7udye9d3hge?0E0V0s0E0v0%0O0%0KhHhBhJdX0xhjdReshMcFe$fk3Je0hRgVh~hUgG7kf-fxfChr0M1Yf@eRfBf28MfEbveYh`gb9vh}7vh5hSeEcOhV9i9Kgni7eaa)fAgvf:d80oaried3fGgug_i8g;iad`fXeab3gAewfYgC7Fe)8afoi17Gi3h6afcba$dmgxf^ihb#igiG9=c^f^c}f=iOgab_g-g|66iDiFi~ii8:i.d7dng,cndtgBh|7QfmiYgk75frisi4a!iwi*fye`i;e|0cj51uiIjt3{fKfMi`dHbRi}iTiCj7fUg~ikiUjc7Ff#jfit75f)jjh6bjjmf.dmi9ibgyf`1Sf|g.f~g00(bZjHjDiPd3f;eOj!j-j9fhjE2xhO3JgejOi4c6gJi!gmh#e^04gqgsiJ4*f1j:1SjYdbj?jaaL0X887?2:2I7`2I0K7|kq2R2N1W1Y7_81.