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

.1280139_ 1e5s,/l8z:ynb]60guiokt(2ch[d7a3mP4.fvpwS)=r050F0f0z0H0w0k0h0d0C0k0H0h0h0T010z0w0P010406050h0v0J0J0H0U0o040R0x0k0v0/0x0p050j0_0{0}0 0@0P04181f051i0j1i1k1f0@0F0w0O0%0)0+0-0D0w0u0D0k1y0D0z0=050Y0q0k0f1t0*0,011x1z1B1z0z1H1J1F0z0q0x0F0 1G0U1g0z0D0%120h0P0H0p0-0B011L1v010N0!0f0p0H0J0f1F1-1/1@1N1`1J1}1 0=0a0d0K0U0x0P0x0h0w150p0d0W1+0U0U0f0C2k18220p1g0j1)2x0z1%1$1(0F240-1B0p1|2h1F1q1s0(1M2H0w2J0p1Z1r1F0P2q1g2v2x2#0^1.2l2P1^2U0U0|0k0=0d0e2u2)0?2(232+1N2-2/2;0B2@1/2_2v2G012~0H2:040d0I322w0@352|0-383a0d0L3e342)363k2;0g3o3g3q3i370x2.392;0s3v2`2*1u2}3A2 3b0G3F3h3I3j3K3C3b0l3O3x3Q3z3B3l0b3W2{3Y3s040e0t3%3H2Q3Z3L0e2?192^3w3(3:3*0e313^333`3/2,3S3a0e3d403f3G3r450=0e3n492x2Y0f2x2N2A0F2E360C1Z201g4m1j2Z3G2$2^054r0W2!3X3:0y0=0W0N3o4b3y0Q2;4L3P3|0N0=0m0x0x0J0c1B0h0z0f4Q4F1^0;040A4(3{2,0=4!4$0c0W1.0U0z4.431N4+0i3o0d4M3)0=0y4|364+0S0n3v0d5d524R4:044=0f0c4V4X51533:0x0=0T5o5g4~0=0E0r5c5e5p1^4H040N3A5u4)2}0=0f0k4{4h5f5J0-0x4O042S5I4/5K5i0w4#5k4^0}5O2%5v0-4+5b4h065e5=5Q5Y0-5E5G0U5X4}3j0=0w5}365T60175P5C2}0q0=0U1/0u4%4h685-0=4-6g5,3755573y595/2#5;5?6v6h6n5!5$5l4W0J6p3Y5r040M6E3|0=0H0P0P1|0F6J4*6j6R5Z5M5*4A6m595A5d6x5E2q0z0v0U662#5@5~6y5j6B5n5:42365E4J6U0-5U526l5R374T045m4Y0W0+5W715^014+6k5+720p0=0u0U0!1J6}7d0=50676m7i04567b6:6r6#6/3r7j7l0k1J6?6D7s726G5t7J7c4+5y7A6%0=5{623y7u1R2J7V6F5U7a6.6x7u7k7m6f7g7O0=6s3_6v6$7t4;5#4?767!5q5s7}5h764Z7`7-6Y727e7o7X1y7Z7x587q805Z7w7.7y0=0S7A5=7S5F5H7N6:7u618s637$6-2^7B7W6a046c0p6e7o888d7W6o8K3Y7z5:7?5?7)7D7,7H7o6G6I8N6K046M6O0p6Q8!6S4,897_6A7|8+5w048m8Q5B6m6(0X6+8z338B54047+7F5k8;6t184C4k1h4x0j4v2y4o182B2A1Y1!2A0H1I9b9e1r2_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

.1280139_ 1e5s,/l8z:ynb]60guiokt(2ch[d7a3mP4.fvpwS)=r050F0f0z0H0w0k0h0d0C0k0H0h0h0T010z0w0P010406050h0v0J0J0H0U0o040R0x0k0v0/0x0p050j0_0{0}0 0@0P04181f051i0j1i1k1f0@0F0w0O0%0)0+0-0D0w0u0D0k1y0D0z0=050Y0q0k0f1t0*0,011x1z1B1z0z1H1J1F0z0q0x0F0 1G0U1g0z0D0%120h0P0H0p0-0B011L1v010N0!0f0p0H0J0f1F1-1/1@1N1`1J1}1 0=0a0d0K0U0x0P0x0h0w150p0d0W1+0U0U0f0C2k18220p1g0j1)2x0z1%1$1(0F240-1B0p1|2h1F1q1s0(1M2H0w2J0p1Z1r1F0P2q1g2v2x2#0^1.2l2P1^2U0U0|0k0=0d0e2u2)0?2(232+1N2-2/2;0B2@1/2_2v2G012~0H2:040d0I322w0@352|0-383a0d0L3e342)363k2;0g3o3g3q3i370x2.392;0s3v2`2*1u2}3A2 3b0G3F3h3I3j3K3C3b0l3O3x3Q3z3B3l0b3W2{3Y3s040e0t3%3H2Q3Z3L0e2?192^3w3(3:3*0e313^333`3/2,3S3a0e3d403f3G3r450=0e3n492x2Y0f2x2N2A0F2E360C1Z201g4m1j2Z3G2$2^054r0W2!3X3:0y0=0W0N3o4b3y0Q2;4L3P3|0N0=0m0x0x0J0c1B0h0z0f4Q4F1^0;040A4(3{2,0=4!4$0c0W1.0U0z4.431N4+0i3o0d4M3)0=0y4|364+0S0n3v0d5d524R4:044=0f0c4V4X51533:0x0=0T5o5g4~0=0E0r5c5e5p1^4H040N3A5u4)2}0=0f0k4{4h5f5J0-0x4O042S5I4/5K5i0w4#5k4^0}5O2%5v0-4+5b4h065e5=5Q5Y0-5E5G0U5X4}3j0=0w5}365T60175P5C2}0q0=0U1/0u4%4h685-0=4-6g5,3755573y595/2#5;5?6v6h6n5!5$5l4W0J6p3Y5r040M6E3|0=0H0P0P1|0F6J4*6j6R5Z5M5*4A6m595A5d6x5E2q0z0v0U662#5@5~6y5j6B5n5:42365E4J6U0-5U526l5R374T045m4Y0W0+5W715^014+6k5+720p0=0u0U0!1J6}7d0=50676m7i04567b6:6r6#6/3r7j7l0k1J6?6D7s726G5t7J7c4+5y7A6%0=5{623y7u1R2J7V6F5U7a6.6x7u7k7m6f7g7O0=6s3_6v6$7t4;5#4?767!5q5s7}5h764Z7`7-6Y727e7o7X1y7Z7x587q805Z7w7.7y0=0S7A5=7S5F5H7N6:7u618s637$6-2^7B7W6a046c0p6e7o888d7W6o8K3Y7z5:7?5?7)7D7,7H7o6G6I8N6K046M6O0p6Q8!6S4,897_6A7|8+5w048m8Q5B6m6(0X6+8z338B54047+7F5k8;6t184C4k1h4x0j4v2y4o182B2A1Y1!2A0H1I9b9e1r2_9e0X0Z0#04.

Dessin en pixel

Le dessin sera tracé ici