moyen
Pixel Art
Une image de Pixel Art est représentée par une liste de listes image. Chaque élément image[i][j] est le numéro de la couleur situé en ligne i et colonne j.
Prenons par exemple les couleurs suivantes :
code couleur
couleur
0
blanc
1
vert clair
2
vert foncé
3
marron
6
rose
L'image suivante :
Dessin original
Un dessin va s'afficher...
est alors représentée par :
tortue = [
[ 0 , 0 , 0 , 2 , 2 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 2 , 2 , 2 , 2 , 0 , 1 , 1 , 0 ],
[ 0 , 2 , 2 , 2 , 2 , 2 , 2 , 1 , 3 , 1 ],
[ 0 , 2 , 2 , 2 , 2 , 2 , 2 , 1 , 1 , 1 ],
[ 1 , 2 , 2 , 2 , 2 , 2 , 2 , 1 , 1 , 0 ],
[ 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 ],
[ 0 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 0 ]
]
On appelle zone d'une image un ensemble de pixels contigus par un côté qui ont tous la même couleur. Il y a donc 10 zones différentes dans l'image de la tortue donnée en exemple.
Pour personnaliser l'image, on souhaite, à partir d'un pixel choisi dans celle-ci, changer la couleur de toute la zone à laquelle il appartient.
Compléter la fonction récursive changer_couleur.
Cette fonction récursive prend en paramètres une liste de liste d'entiers image qui représente l'image de Pixel Art, i et j des entiers tels que image[i][j] soit le pixel choisi, couleur un entier qui est le code de la nouvelle couleur.
Cette fonction ne renvoie rien, et modifie en place la liste de liste image de sorte qu'elle représente l'image pour laquelle toute la zone à laquelle appartient le pixel choisi soit de la nouvelle couleur couleur.
Par exemple, après l'exécution de l'instruction changer_couleur ( tortue , 3 , 1 , 6 ) on aura :
tortue = [
[ 0 , 0 , 0 , 6 , 6 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 6 , 6 , 6 , 6 , 0 , 1 , 1 , 0 ],
[ 0 , 6 , 6 , 6 , 6 , 6 , 6 , 1 , 3 , 1 ],
[ 0 , 6 , 6 , 6 , 6 , 6 , 6 , 1 , 1 , 1 ],
[ 1 , 6 , 6 , 6 , 6 , 6 , 6 , 1 , 1 , 0 ],
[ 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 ],
[ 0 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 0 ]
]
Le code 6 représente la couleur rose. La nouvelle image sera donc la suivante :
Dessin final
Un dessin va s'afficher...
Compléter ci-dessous :
Version vide Version à trous sans boucle Version à trous avec boucle
.1280133ytbIzq)4ê_7uj:k8s(ar5.lRv21m+9ép;=cxSi,6fdg[!he P]ow/Cn0D-?Q050R0W0d0u0N0y0s0X0K0y0u0s0s0J010d0N0H010406050s0n0D0D0u0v0c040M0!0y0n110!0(0X020u0D0H0I0X0z0W1b0v0h0n0W0s050$181a1c1e160H041C1J051M0$1M1O1J160R0N0A0_0{0}0 0V0N0S0V0y1$0V0d14050;0e0y0W1X0|0~011#1%1)1%0d1/1;1-0d0e0!0R1e1.0v1K0d0V0_1h0s0H0u0(0 0B011?1Z010Q0?0W0(1p0W1-2e2g2l1^2o1;2r0D2t040a0X0Y0v0!0H0!0s0N1k1m0/2c0v0v0W0K2O1C2v0(1K0$2a2!0d2827290R2x0 1)0(2q2L1-1U1W0`1@2.0N2:0(241V1-0H2T1K2Y2!35172f1m2_2m2~0v1b0y140X0C2X3915382w3b1^3d3f3h0B3k2g3m2Y2-013r0u3g040X0b3v2Z163y3p0 3B3D0X0j3H3x393z3N3h0w3R3J3T3L3A0!3e3C3h0P3Y3n3a1Y3q3%3s3E0m3,3K3/3M3;3)3E0r3^3!3`3$3(3O0F403o423V040C0)473.2`433=0C3j1D3l3Z484g4a0C3u4l3w4n4f3c3|3D0C3G4t2Z1L331C2@2%0R2+3z0K242D0.1V1K320W343l3R054M0/4U4o3c140*0f0z0M3R0X3-3z0!140J4,4.3#13040t0t4W3_4g0D0N144d4C4!4w1^4_0O4?4~2m50144k375b57140i59544-5h0 4_4|544@425d04535g414g585a5z2m4:040+4}5D1^5v5f4V5o014_5k5C4#5i4`5I5T0 5L5W565p145l355n5J5Y515w5!3z5Q5(3l5*5X5P145r5y5^5F5H5s5O5Z605+5_045=3w5@5#015v5x5N645Q0i3Y4v3z0q140/0Q5/3#0#3h6p490Q140K0V2g0S0W0v0l4M0n1;0n0v6t5A5`6J4$040N1b6A6M5U672Z693U140N6S5$665S6a0(140o6!656U3E5t4p6w0!6F0W6H6,5Q0p3Y0X6~6W3#6)046E6G6C3%1$2|0W6%4/4;7b716Y6Q7a635^4_0T6,726Z7j6a4_0Z7m7q6X046+7v4^140Z6}6 6:6N6y1j6^6I5m7F1^5F4=7L5O0(0e142A6`6L7z497g0u6R7Y6K046h54066 707Z040{0v6A6_7Q647O7e497T7:2q7W5V7%6N6P7#7i5|7r147u873z6c800Z7*357,7E5O6l6O6o7^5^72747J7{4g5F0U7P5)7M3M6=6@6H0l770S79806|7+7-7-8z3A7!7$8b7A048a6e8p6Y8e8U3w8N727y8R427s8t5E7d8o6(8B757D8L7.4g8l0Q3%8+3q6m7p8(7(6.8@6N0R8%5?8N0!6r6O0(8|8A044(4*8I8=8?8j647o0l1U9d017`8.7w8 975O5F0E9q729p8K9k8M7R6*9o9668988-8y9G7x9q9y9A6m9J3I9E9F648l0N8n9N648d9t3#5F020y0d0I8x9w9m6Y9o9v9K9x149,9.9S047H0d8s9)4299142g0R9q9(9$5}9{9-9/9~0o9I9Qad9}a36;7:1c7?7Kab6aa504a79~848Q8V888T7n9?9C902m7s8Z4D9Oah958eaj040J9:9_9=736?758E0v782:9i9D9W8L8#6w6y0(6A6C8r7@aG5U5{aA9u7h8092a*6O9@a{agai826T9~a:ara^8S8g4m1C4Y4T4Ebe0$4H1C0d4Jbj2)2#23252%0u1:bg4H1I553z2T0D0l0Q0u0q0W0l0V0b141u1w1y1A0X8J371P3m1J0-1z0X0s1=2f0}0W0+0d0+0?bW0N0X1lbW0n0H326P1=1;0Xa10s0d0X2Q0{0X1|2:0X0m0X0,4-bRbw0f0(a10v320Gcbb|2g0^b@4Mca0W0La1b|b?00cm6B0K0N0K0W0x1L3m0/0;0?0^3#180Kcw0}143J191w1e1g1i2W1DcM1GbS1fb+b-18b:aZ2Cb 0ub 1$c10m0Ob,1m2q2(1=0Rch0X0nc10v0G0K6H2Mb-2|2o0(0Ncx060%crb`0_1=1yb+bX0XbZbX0v0=b{2Mc.0X0AaWdj0Xbz0H0{cw0vc%2c8Cdwb}c(0g1lbY1cdx0D0kc$b6cyc74G0:0=0@3mbhdPcD04.
.1280133ytbIzq)4ê_7uj:k8s(ar5.lRàv21m+9ép;=cxSi,6fdg[!he P]ow/Cn0-?Q050S0X0d0u0O0y0s0Y0L0y0u0s0s0K010d0O0I010406050s0n0E0E0u0v0c040N0#0y0n110#0)0Y020u0E0I0J0Y0z0X1b0v0h0n0X0s050%181a1c1e160I041C1J051M0%1M1O1J160S0O0B0_0{0}0 0W0O0T0W0y1$0W0d14050;0e0y0X1X0|0~011#1%1)1%0d1/1;1-0d0e0#0S1e1.0v1K0d0W0_1h0s0I0u0)0 0C011?1Z010R0?0X0)1p0X1-2e2g2l1^2o1;2r0E2t040a0Y0Z0v0#0I0#0s0O1k1m0/2c0v0v0X0L2O1C2v0)1K0%2a2!0d2827290S2x0 1)0)2q2L1-1U1W0`1@2.0O2:0)241V1-0I2T1K2Y2!35172f1m2_2m2~0v1b0y140Y0D2X3915382w3b1^3d3f3h0C3k2g3m2Y2-013r0u3g040Y0b3v2Z163y3p0 3B3D0Y0j3H3x393z3N3h0w3R3J3T3L3A0#3e3C3h0Q3Y3n3a1Y3q3%3s3E0m3,3K3/3M3;3)3E0r3^3!3`3$3(3O0G403o423V040D0*473.2`433=0D3j1D3l3Z484g4a0D3u4l3w4n4f3c3|3D0D3G4t3I3-3U4y140D3Q4C2!320X2!2@2%0S2+3z0L242D0.1V1K4M343l3R054U0/4#4o2m0q140/0R4%3_4g0$3h4=414p0R140L0W2g0T0X0v0l4U0n1;0n0v4`4,1^13040t5b4w3q140O1b525h3z5e0P3R0Y4E3#0)5k5o3#5q5s5u49140o5y425A4K5t4?3c4~0#570X595G4g5e0i0p3Y0Y5Y5K4{5M045658543%1$2|0X5B5L1^0#140K5/5#5j045l0u5n4K5C5T140U5S5$0O645d140!635 5:3M5E670 5e0!5X5Z605$501j5Q5a5J6m5;5?5^5c3M0e142A6g015e5g6c5_6e5{5m5.6G6x6D140i6k5Y6t6I0{0v525R6s6d015=045@6Z6H3A6z046B6M5i6h146F376!5w6J5}6L6@6*5e6b6}6N0E0O144d6/5p696Q4K065Z5!6N4.5{4;6)6N6_5(6q6w6:6#140V6(357e7p7l5O5)0l5+0T5-6C5e5W7b7d7d6T3A5k6K7E626C6_66775z69704$6^6f7T5H697o3z6$7t3l7v3U5N5P6Y357c7I6S6!7g0O7i7u7K7R7%3#6$0+7 42734H834g6$020T0d0J7*3w7,3#8504767|6!0#4^042g0S87657N7!61047W3w7}5x8v2m816C8i4k717p6i8y2Z8A045F8C68046j7j7p7)8e2Z8g5D5%7y6q7A0v5,2:7O047G7u8Z4g0L0D14030Y1l0_500)520Y2q0Y6o0d6R7?6l7Y5%8|52547m7:7X6~6=7Q7M6{8,5r8U7-5{8s6u04829m8h744b9k9p6I8P8I78049l8l6*7x7/6r9B7U047a7;958:4-5k7{7+8N7S9F6N6$0F9y018G9#890y8c9#6_927n9t428n148q9,9i5~9K7#8x9h9o9:88149!a02m9%8Q6;8S8L4+7w7Z9{8w8T9X8V5?8X3E8N9c5*8)7C8+a76O8-5s9Q1^8=8@8_3a991=900e0|949PamaC9b8$9d8z6!6E9~5|9`9e6N5Iah9n9W9U8ma29#a6ae2maWa!9GadaU8J149Ea,7k7.5)8,9N7+7=7?7K7_9T8f8N9Aa?ai9ra%9v8Hb57(148a8cakaw0 8i8kbb808o9@a45`aS6|a/9Caa9V8,6a9~b4b2a#b7bpbib9bx9(aj9^8#9I8(8*bsaO9fau5Jbh01ay048^8`4 511=0A0Y0T0u0n4 bP3I9P7J97b!8}5355aM9Jbt9L6?b{8!br9xbE7L9 a)8Ra=bBa-8ObIbDaX9u86asa+c8a@bLa_cg6P5sa}7Ia 9SbKbA8Y7K9Zb8cfcd9;bd9*0JbK6V6Xb`ci8Vbn0)8rc27R8uc5a8bv97aZbQaV7Vbzcba3cA4ga(b~afcb0Kbgamb_bNaqb-ab9C8.7+bUbWbYaBb#0Yb%0S2I2Nc=cpaIb;aKb^9I8,b}cWac6`aTdd9Cc7cvcUc1c$5$cualbCc#bl84bGcm9DbKana`3,0%4)4N1L331C4P1C0d4RdJ2)2#23252%0u1:dE0%4P1Ic?3#2T0E0l0R0u0q0X0l0W0b141u1w1y1A0Yc^8z1P3m1J0-1z0Y0s1=2f0}0X0+0d0+0?d~0OaAd~0n0I325l1=1;0Y0d1A0d0Y2Q0{0Y1|2:0Y0m0Y0,5td_dX0f0)ej0v320HeBem2g0^eh4UeA0X0Mejemeg00eM530L0O0L0X0x1L3m0/0;0?0^3#180LeW0}143J191w1e1g1i2W1De:1Gd`1fe98`18ed8)2Cep0uep1$er0m0Pea2q2(1=0SeH0Y0ner0v0H0L592M8`2|2o0)0OeX060(eR0seleW0Y1ye9d 0Ye1d 0v0=el2Mea0B7yfJ0Yd!0I0{eW0vf42c9IePfW0g1le01cfW0E0kf3aneYexdH0:0=0@3mdVf;e%04.
.1280133ytbIzq)4ê_7uj:k8s(ar5.lRv21m+9ép;=cxSi,6fdg[!he P]ow/Cn0D-?Q050R0W0d0u0N0y0s0X0K0y0u0s0s0J010d0N0H010406050s0n0D0D0u0v0c040M0!0y0n110!0(0X020u0D0H0I0X0z0W1b0v0h0n0W0s050$181a1c1e160H041C1J051M0$1M1O1J160R0N0A0_0{0}0 0V0N0S0V0y1$0V0d14050;0e0y0W1X0|0~011#1%1)1%0d1/1;1-0d0e0!0R1e1.0v1K0d0V0_1h0s0H0u0(0 0B011?1Z010Q0?0W0(1p0W1-2e2g2l1^2o1;2r0D2t040a0X0Y0v0!0H0!0s0N1k1m0/2c0v0v0W0K2O1C2v0(1K0$2a2!0d2827290R2x0 1)0(2q2L1-1U1W0`1@2.0N2:0(241V1-0H2T1K2Y2!35172f1m2_2m2~0v1b0y140X0C2X3915382w3b1^3d3f3h0B3k2g3m2Y2-013r0u3g040X0b3v2Z163y3p0 3B3D0X0j3H3x393z3N3h0w3R3J3T3L3A0!3e3C3h0P3Y3n3a1Y3q3%3s3E0m3,3K3/3M3;3)3E0r3^3!3`3$3(3O0F403o423V040C0)473.2`433=0C3j1D3l3Z484g4a0C3u4l3w4n4f3c3|3D0C3G4t2Z1L331C2@2%0R2+3z0K242D0.1V1K320W343l3R054M0/4U4o3c140*0f0z0M3R0X3-3z0!140J4,4.3#13040t0t4W3_4g0D0N144d4C4!4w1^4_0O4?4~2m50144k375b57140i59544-5h0 4_4|544@425d04535g414g585a5z2m4:040+4}5D1^5v5f4V5o014_5k5C4#5i4`5I5T0 5L5W565p145l355n5J5Y515w5!3z5Q5(3l5*5X5P145r5y5^5F5H5s5O5Z605+5_045=3w5@5#015v5x5N645Q0i3Y4v3z0q140/0Q5/3#0#3h6p490Q140K0V2g0S0W0v0l4M0n1;0n0v6t5A5`6J4$040N1b6A6M5U672Z693U140N6S5$665S6a0(140o6!656U3E5t4p6w0!6F0W6H6,5Q0p3Y0X6~6W3#6)046E6G6C3%1$2|0W6%4/4;7b716Y6Q7a635^4_0T6,726Z7j6a4_0Z7m7q6X046+7v4^140Z6}6 6:6N6y1j6^6I5m7F1^5F4=7L5O0(0e142A6`6L7z497g0u6R7Y6K046h54066 707Z040{0v6A6_7Q647O7e497T7:2q7W5V7%6N6P7#7i5|7r147u873z6c800Z7*357,7E5O6l6O6o7^5^72747J7{4g5F0U7P5)7M3M6=6@6H0l770S79806|7+7-7-8z3A7!7$8b7A048a6e8p6Y8e8U3w8N727y8R427s8t5E7d8o6(8B757D8L7.4g8l0Q3%8+3q6m7p8(7(6.8@6N0R8%5?8N0!6r6O0(8|8A044(4*8I8=8?8j647o0l1U9d017`8.7w8 975O5F0E9q729p8K9k8M7R6*9o9668988-8y9G7x9q9y9A6m9J3I9E9F648l0N8n9N648d9t3#5F020y0d0I8x9w9m6Y9o9v9K9x149,9.9S047H0d8s9)4299142g0R9q9(9$5}9{9-9/9~0o9I9Qad9}a36;7:1c7?7Kab6aa504a79~848Q8V888T7n9?9C902m7s8Z4D9Oah958eaj040J9:9_9=736?758E0v782:9i9D9W8L8#6w6y0(6A6C8r7@aG5U5{aA9u7h8092a*6O9@a{agai826T9~a:ara^8S8g4m1C4Y4T4Ebe0$4H1C0d4Jbj2)2#23252%0u1:bg4H1I553z2T0D0l0Q0u0q0W0l0V0b141u1w1y1A0X8J371P3m1J0-1z0X0s1=2f0}0W0+0d0+0?bW0N0X1lbW0n0H326P1=1;0Xa10s0d0X2Q0{0X1|2:0X0m0X0,4-bRbw0f0(a10v320Gcbb|2g0^b@4Mca0W0La1b|b?00cm6B0K0N0K0W0x1L3m0/0;0?0^3#180Kcw0}143J191w1e1g1i2W1DcM1GbS1fb+b-18b:aZ2Cb 0ub 1$c10m0Ob,1m2q2(1=0Rch0X0nc10v0G0K6H2Mb-2|2o0(0Ncx060%crb`0_1=1yb+bX0XbZbX0v0=b{2Mc.0X0AaWdj0Xbz0H0{cw0vc%2c8Cdwb}c(0g1lbY1cdx0D0kc$b6cyc74G0:0=0@3mbhdPcD04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)