Zoom matrice image

Dessin de coeur

Un dessin va s'afficher...

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.

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

Exemple
>>> ligne =  [0, 1, 0]
>>> zoom_liste(ligne, 2)
[0, 0, 1, 1, 0, 0]

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.

Exemple
>>> croix =  [[0, 1, 0],
...           [1, 1, 1],
...           [0, 1, 0]
...           ]
>>> zoom_dessin(croix, 2)
[[0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0]]
fonction affiche

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.

>>> 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))

                * * * * * *                   * * * * * *
                * * * * * *                   * * * * * *
                * * * * * *                   * * * * * *
          * * *             * * *       * * *             * * *
          * * *             * * *       * * *             * * *
          * * *             * * *       * * *             * * *
    * * *                         * * *                         * * *
    * * *                         * * *                         * * *
    * * *                         * * *                         * * *
    * * *                                                       * * *
    * * *                                                       * * *
    * * *                                                       * * *
    * * *                                                       * * *
    * * *                                                       * * *
    * * *                                                       * * *
          * * *                                           * * *
          * * *                                           * * *
          * * *                                           * * *
                * * *                               * * *
                * * *                               * * *
                * * *                               * * *
                      * * *                   * * *
                      * * *                   * * *
                      * * *                   * * *
                            * * *       * * *
                            * * *       * * *
                            * * *       * * *
                                  * * *
                                  * * *
                                  * * *
fonction affiche_pixel

La fonction affiche_pixel permet d'afficher le dessin avec la représentation des pixels noirs et blancs.

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 : 10/10

.128013:pbv(40i2zedm3s7= 1o5w_lSnatf)9h]6,crg.[yPku8/050m0l0C0B0i0y0p0s0K0y0B0p0p0r010C0i0c010406050p0S0n0n0B0L0P040z0u0y0S0/0u0A050U0_0{0}0 0@0c04181f051i0U1i1k1f0@0m0i0e0%0)0+0-0G0i0M0G0y1y0G0C0=050Y0d0y0l1t0*0,011x1z1B1z0C1H1J1F0C0d0u0m0 1G0L1g0C0G0%120p0c0B0A0-0j011L1v010D0!0l0A0B0n0l1F1-1/1@1N1`1J1}1 0=0a0s0Q0L0u0c0u0p0i150A0s0W1+0L0L0l0K2k18220A1g0U1)2x0C1%1$1(0m240-1B0A1|2h1F1q1s0(1M2H0i2J0A1Z1r1F0c2q1g2v2x2#0^1.2l2P1^2U0L0|0y0=0s0t2u2)0?2(232+1N2-2/2;0j2@1/2_2v2G012~0B2:040s0o322w0@352|0-383a0s0g3e342)363k2;0v3o3g3q3i370u2.392;0I3v2`2*1u2}3A2 3b0q3F3h3I3j3K3C3b0T3O3x3Q3z3B3l0F3W2{3Y3s040t0h3%3H2Q3Z3L0t2?192^3w3(3:3*0t313^333`3/2,3S3a0t3d403f3G3r450=0t3n492x2Y0l2x2N2A0m2E360K1Z201g4m1j2Z3G2$2^054r0W2!3X3:0R0=0W0D3o4b3y0w2;4L3P3|0D0=0k0u0u0n0x1B0p0C0l4Q4F1^0;040f4(3{2,0=4!4$0x0W1.0L0C4.431N4+0J3o0s4M3)0=0R4|364+0E0b3v0s5d524R4:044=0l0x4V4X51533:0u0=0r5o5g4~0=0O0H5c5e5p1^4H040D3A5u4)2}0=0l0y4{4h5f5J0-0u4O042S5I4/5K5i0i4#5k4^0}5O2%5v0-4+5b4h065e5=5Q5Y0-5E5G0L5X4}3j0=0i5}365T60175P5C2}0d0=0L1/0M4%4h685-0=4-6g5,3755573y595/2#5;5?6v6h6n5!5$5l4W0n6p3Y5r040N6E3|0=0B0c0c1|0m6J4*6j6R5Z5M5*4A6m595A5d6x5E2q0C0S0L662#5@5~6y5j6B5n5:42365E4J6U0-5U526l5R374T045m4Y0W0+5W715^014+6k5+720A0=0M0L0!1J6}7d0=50676m7i04567b6:6r6#6/3r7j7l0y1J6?6D7s726G5t7J7c4+5y7A6%0=5{623y7u1R2J7V6F5U7a6.6x7u7k7m6f7g7O0=6s3_6v6$7t4;5#4?767!5q5s7}5h764Z7`7-6Y727e7o7X1y7Z7x587q805Z7w7.7y0=0E7A5=7S5F5H7N6:7u618s637$6-2^7B7W6a046c0A6e7o888d7W6o8K3Y7z5:7?5?7)7D7,7H7o6G6I8N6K046M6O0A6Q8!6S4,897_6A7|8+5w048m8Q5B6m6(0X6+8z338B54047+7F5k8;6t184C4k1h4x0U4v2y4o182B2A1Y1!2A0B1I9b9e1r2_9e0X0Z0#04.

###(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 : 10/10

.128013:pbv(40i2zedm3s7= 1o5w_lSnatf)9h]6,crg.[yPku8/050m0l0C0B0i0y0p0s0K0y0B0p0p0r010C0i0c010406050p0S0n0n0B0L0P040z0u0y0S0/0u0A050U0_0{0}0 0@0c04181f051i0U1i1k1f0@0m0i0e0%0)0+0-0G0i0M0G0y1y0G0C0=050Y0d0y0l1t0*0,011x1z1B1z0C1H1J1F0C0d0u0m0 1G0L1g0C0G0%120p0c0B0A0-0j011L1v010D0!0l0A0B0n0l1F1-1/1@1N1`1J1}1 0=0a0s0Q0L0u0c0u0p0i150A0s0W1+0L0L0l0K2k18220A1g0U1)2x0C1%1$1(0m240-1B0A1|2h1F1q1s0(1M2H0i2J0A1Z1r1F0c2q1g2v2x2#0^1.2l2P1^2U0L0|0y0=0s0t2u2)0?2(232+1N2-2/2;0j2@1/2_2v2G012~0B2:040s0o322w0@352|0-383a0s0g3e342)363k2;0v3o3g3q3i370u2.392;0I3v2`2*1u2}3A2 3b0q3F3h3I3j3K3C3b0T3O3x3Q3z3B3l0F3W2{3Y3s040t0h3%3H2Q3Z3L0t2?192^3w3(3:3*0t313^333`3/2,3S3a0t3d403f3G3r450=0t3n492x2Y0l2x2N2A0m2E360K1Z201g4m1j2Z3G2$2^054r0W2!3X3:0R0=0W0D3o4b3y0w2;4L3P3|0D0=0k0u0u0n0x1B0p0C0l4Q4F1^0;040f4(3{2,0=4!4$0x0W1.0L0C4.431N4+0J3o0s4M3)0=0R4|364+0E0b3v0s5d524R4:044=0l0x4V4X51533:0u0=0r5o5g4~0=0O0H5c5e5p1^4H040D3A5u4)2}0=0l0y4{4h5f5J0-0u4O042S5I4/5K5i0i4#5k4^0}5O2%5v0-4+5b4h065e5=5Q5Y0-5E5G0L5X4}3j0=0i5}365T60175P5C2}0d0=0L1/0M4%4h685-0=4-6g5,3755573y595/2#5;5?6v6h6n5!5$5l4W0n6p3Y5r040N6E3|0=0B0c0c1|0m6J4*6j6R5Z5M5*4A6m595A5d6x5E2q0C0S0L662#5@5~6y5j6B5n5:42365E4J6U0-5U526l5R374T045m4Y0W0+5W715^014+6k5+720A0=0M0L0!1J6}7d0=50676m7i04567b6:6r6#6/3r7j7l0y1J6?6D7s726G5t7J7c4+5y7A6%0=5{623y7u1R2J7V6F5U7a6.6x7u7k7m6f7g7O0=6s3_6v6$7t4;5#4?767!5q5s7}5h764Z7`7-6Y727e7o7X1y7Z7x587q805Z7w7.7y0=0E7A5=7S5F5H7N6:7u618s637$6-2^7B7W6a046c0A6e7o888d7W6o8K3Y7z5:7?5?7)7D7,7H7o6G6I8N6K046M6O0A6Q8!6S4,897_6A7|8+5w048m8Q5B6m6(0X6+8z338B54047+7F5k8;6t184C4k1h4x0U4v2y4o182B2A1Y1!2A0B1I9b9e1r2_9e0X0Z0#04.

Dessin en pixel

Le dessin sera tracé ici