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=yCT324,g7p]v_rb:c8/A.ùitE1mé)?*fzoqs569[lSR;auPkewn-h(d0 0F0+0*0z0y0l0*010R0J0Q0V0.0J0!0106060*1011020Q0z0T0l020j1513150u17190T0~1111050(0y0n0*0s0Q0U0L0L0b011q0!0j0V0U0j0Y0#0l0c0z0$0{0*0$0y0j0$0Q1L0$0z0104050z0U0q0Q0Y1o1q1s1u1K1M1O1M0z1V1X0Y1S1U0p1T1G1o0@0L0l0U0!1u0g011!1r1t010H0y1Y0!0U0C1/1T1`1|211$24260Y282a1S0a0*0W0p0J0l0J0L0y0`0!0*0(1Z0s0J0p0p0Y0s2w050u2d0!1T0u1G2M0z1=1;1?0(2f231O0!2j2t1:1l1n1p221u2X2Z2$1:0l2E2c1{2L2I2K2;2e2(2g0!2C0C0U0Q1:0U1J2E0H1u030o0o2B2z2+2}0#0B3f1S0*0B2I0U2M2^06052K2V1u2}0p2 311T330$3537393b0Y3d0J3f0#1 040*0g3l3n2=043p3r2{233u3w32340Y3601383a0J3c0y2Y3e3g0f3i0f3O2@3Q3S2=3s013W303Y3A3!3C3(3*3,3H3g0h3i0h3=2J3@3q3_3U3t2~3}3y3Z3#3%3E3G3I0M3i0M4a3o4d2`1#3V4h3x053z3B3$3D3)3F3+2Z3I0N3i0N4t4c3T4x4g3v4i4B4k414n4I3-0#0k3i0k4O1|3R4v2x4f3{4z3~4D4m4G4o3g0t3i0t4)2L3^4w2)4/4T4A4C404E424H443I0O3i0O4}4+4Q513|544W574Y5a3g0B0)1S5q5f4 4-4R523X4j3 4l4F434J5p0B5s3k0u3m3?4*5v3`5j4;564?5E4!0B3K5W5u4,5P4:5A4=5D595F3f3/040B3;5K3P5N5!4.5Q5%5S5)4^3f475.495;5M4~5@5x5_4V5B4X4@4Z453f4q5.4s624b5?5h2|5$685(585}0B4L5.4N6i4u6l4y535R5C6q6c3I0B4$5.4(6w4P4e666n556C5n5+0B4`5.4|6K6k6M5i6O5l5T5*5V5c5.5e6X646y4S5z6o5{6D5o3J5r040g0)5Z6/5y4U6P6a5U6d0g5H6{5J5L6j6.6Z6m6A5`6Q6b6^0g3K7k6~7d6z6;725m7i5+0g5-7v7n507e7q6$5|6E3g0g5 7G7y5w6!7f6=7h743I0g6f7R7J5#7M7r6%5}0g6t7!7U5^6#697s7P7F6H0g6J7a2^2I2/0Y2M2$2P0(2T3`3E2#1m1T7@2_2?7b1T3E840*0y0(1u392K6F3Y8b8d6@6S202k0Y8j6R5V1:626 0|040d0v0S0v0d0e0A0S0A0R633L65510J1S0b8H0*8J2g0l1S0P8H8Q230L7702030f0O0T108!8$0T8V6 8S040i8O8W1u8Y1S8*8%0*0G8`8,868?018/0m8H3p903r8i018e2=7Q8h8c9a8k4!1 0*8n8p7t9i8s3m967=989f9b1|3I5-4V997D6^3/9k298o9g8q6d9y8t7o1u0X1S2z0H8-9M010Z3i9S7z3V0H1S0U0H250s0$0Y9X7K8R1S0%9,5P9P0Y1s3+9;4.8/0E0r959;9A0o8f469e9m7,0#479E2aa66(6d5 3O1i919O040H2C8=8u1S1*2Yan9T0J9V049_868Pao042z9^0!9`5x8/9~869r3Q5!a1a30#6f9z9u9h6d4qaa9G9B5+aQ5;1iah6 ajal0pas9Y3t9P1L2va,9-23au1Sax2^az9T8vaq9+979TaH9 b12eaN9c3g6taRac5}4LaWbc7E0#baa#a$bl910!0q1S2/3+0zaF518/9:b5a?a.8w8y8A8C8E8Gby3`8/8UbH5^a/0ja;bLaG1S0m8;aybn1S2j0(bu2g8L048NbQ510L3K020K0V0J1ab.b:8 9sb21S0Eb4b^b6aSaO6Hbb9H9n6d4$bfc3a7c1bkbm8ubp04br0!btb)9.040%b{aJa0b b80#6Uc2aY4!4`c7cv6dct5;aK4*aMcq9w3g6*cuaT5b8m9Fbg6^cJcCcp8jaO5qa5c8ad6F5rcycL5p6`3=a(9?9Rcj23av8Pc.3t9!040I0J0J0C0o1O0L0zb0b}bz929/b!3Vap0yc 0Y0o2z1{0pcid2bI1SbUa{bW040Xd61u9|aI4ubHb7cH3f77cK9I6F5Hc$dA5G9p894.c:1jc=010L0(8_8#8%8~8~2E0!0n0J0y1Z0V2Y0*c~d01^ch2j1|0z0*0X0*ald91o0$0Ub.d14cducG0!6F3Kdzc4d cNabcY6re09La-dMdO3L110D0Q0D2ach2y1Zd%dbdd0UdfdSdQ0T8~b|aL9tcUcr5/cXcz6F9D9le6bheA2M3ma%a}d8da0oc_c{a=3`b$b(dl8.8T94cod|eydw0Baf33a1dE5~e4aXc%e-eJed10ai1Sa*eSbM043Fdg3Qa|eaa^awaEbVaAemdc0Ydee cEeX04dsd{dhdvd~5paQe*aSe,0BaVeFeCfldGble@c+akamf6eMawe{5xf3a`f0bnce0p1|1Bdpd4clfO8vdodLdrevfd3_fj6FbafncP6Sbefse:6sfvfweLeaa~d9d0ePc`0CfOb$0wfR9#0l0lbYfObwf}e}14g2b`fW2?ex9gcVc1f$eG6^6Ge.f%5VcaeK1jfy2E0z0V0pf5eWfCf8eQf_e!fid}6Fctgfft3fcxf*fpcB9qcTgcezcJgFf+5cdDe25pcR5Lfy9QfOc:fRc@gyf9aDg7fQdL8v0j0p261Yg,dkfIaAfTdh9{b`fg5?e#gOdw6|eBe:h4gUa7h4e=91dJe@dLdNdP8+er8+dUdWdY0*d!1Zg:g=1Z0J0xd$9@d$1L2Y0L0*0L0{d-gy0Dhxd/d;0Lg989fZ7FdygRe,76gjgg7udye9d3hge?0*0A0e0*0p0D0l0D0zhHhBhJdX0LhjdReshMcFe$fk3Je0hRgVh~hUgG7kf-fxfChr0Q1Yf@eRfBf28MfEbveYh`gb9vh}7vh5hSeEcOhV9i9Kgni7eaa)fAgvf:d80jaried3fGgug_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?jaaL0u887?2:2I7`2I0z7|kq2R2N1W1Y7_81.