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

🐍 Console Python
>>> 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"
(Ctrl+Clic pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
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
.1280130ldCT?1,4*A]ké/weibmc:_35aPrq 7=9o[f.g;t286sSRhE()zùpunv0g0)0E0O0s0#0E010T0I0c0$0,0I0%0106060E0~0 020c0O0N0#020M1311130p15170N0|0 0 050d0s0(0E0v0c0A0S0S0G010V0s0M0V0c1v0V0O0104050O0A0t0c0r1m1o1q1s1u1w1y1w0O1F1H0r1C1E0C1D0O0V1m0=0S0#0A0%1s0P011K1p1r010K0s1I0%0A0u1V1D1(1*1/1M1=1@0r1_1{1C0a0E0B0C0I0#0I0S0s0^0%0E0d1J0v0I0C0C0r0v2h050p1~0%1D0p1!2x0O1Y1X1Z0d201;1y0%242e1W1j1l1n1:1s2I2K2N1W0#2p1}1)2w2t2v2Y1 2P210%2n0u0A0c1C0E0h2#2Z0406052v2G1s2+0C2-2/040E0P2?1*2^2`2Z2|012~302:0y352w2_2{2)1;3c2.2:0j3g373j1L3l2,3n320z3q3i393k2}3v310E0R3z382(3t3D2 3w0E0F3I3s2Q3b3E2:0Q3R3B3L3U3N3F0H3Y3K3T3m310h0b3)2i3C3#3d040h2=2u2@3A3*2*3V3^343{363}3;3!3,1C0h3f433h3J463+400h3p4c3r3Z4g3$493y4k453a483^3H4r4e4t4h3Q4x3S3 4o3^3X4C4m4E3@0h3(4I3~3u4F0P3/4O4f4K3w0P3`2$4s3=4u0P424!4y4$400P4b4*4D4Q3@0P4j4:4J4=4X4q4_4P3M4?4w4~4V4{310P4B2$2t2W0r2x2N2A0d2E3a2m2k2M1k1D5b2%2!4k055j5c4+471C0e0l0U0l0e0f0W0U0W0T3q0E5v3T0I1C0G5I5K210#1C0J3q5Q1;0S0h1C02030y0H0N0~5#5%0N5V4;1s5S040i5P5/015Y5!5$5(0E0k5+5(5.4`5:1C0m3z4#3!0n1C2k0K5@633b0K1C0A0K1?0v0V0r624 015;0X6p542}6b0r1q0s0%6u3a5;0Y0w3z1g5W1s6a040K2n6e6q0`041Q2J6P6v010I0q1C6A6V4t6x6z6B5r5^5;6G4r1g6I5^6L6N0C6$4$6b1v2g6_3!6Y6!6*2$5J5^6R6T6o6+6f6-6H6:7d6J3b0t1C2W6A0O6C3=6s7m5w045y5A5C5E5G7p3T5;5U796Q6{0M6}7B6W5;0m5?4k746f6R240d7x215M045O7G3a0S1-04020D0$0I187$7(5-7W7n1C0Y7c7e757h047j0%7l7-3!6s7:4r0|7f6L6c6~3+6h040Z0I0I0u0x1y0S0O78596,1C6t7|3+1C8e8g0x2k1)0C7{8i7a1C7K737f6R0n7R1;6E6.533a6Z321h8m210S0d5{5,600N8T2p0%0(0I0s1J0$2J0E8p2l0_8g1_7`0E0n0E6N0s0S1m0V0A7$8h3|7f8P2:0 0o0c0o1{8.2k8(8?8q8s0A8u8T9e5|7,4!6;7N8o990r0x898b857S5N9r8F5T666/1h6=1C6@9u6w040r129D6X8K6#7L8B9l8f9n9b8u8E64048H3|7d0~829B6O9M756!9I70049L8A7?1C0C1*0M8|367f7o8N3l1C8D9{9U6F7;9Y9Z9(6S9m9o8a0u9T6X1C0Lab6R0A0#0#7Pab9`8w7C9F9H9 6r7/a29!042p0O0$0C722@7Mao8)a89q80av849%7N879p8c2k6)al8kaf1C0M0C1@1IaS5=9I8Ca!a14U8J909Zar8 7!9g9f5,8W8Y8!0E8$1JaWaY1J0I0!8(6y980M2J8@0S8+0EaO0ob38:8=0S3:7X8Q8L0~0W0f0E0C0o0#0o0Obc8@be8Z0Sa=5(8Taua5a}0c1IaGaaaL6q7T7V9.8x040J9x9i9z6f6?9$bNaE1v6UbJ6W9+9-aC9N04bEaZar7b9y7=9ka69PbH9*9tb#6%88a98d9ma!8lan6W76bZ9@2!8ja#b{6`049~c36Datb:6:av9Ccb7q0s9*9KaB36aDc47@9;0%9?c1aUcda(9W44a39jaob,9naOab7Taearagaiakb.aTcO9O8qcKcS047 bSa4bU9:0rayaAa$aVaXbFcJa93I0p5t2x5o2t5e2t0O5gc|2C2y1G1I5d5m.