Découvre participations Python au concours Noël 2022 Casio
![Message non lu Message non lu](/forum/styles/prosilver/imageset/icon_post_target_unread.gif)
![](https://i.imgur.com/sPPZ6Nxt.png)
Il te suffisait de programmer sur ta calculatrice Casio ou son émulateur ton menu de Noël, avec 2 catégories au choix :
- catégorie étudiants : pour les participations individuelles d'élèves de collège ou lycée
- catégorie classe : pour les participations collectives de classes de collège ou lycée
Pour réaliser ton dessin, tu pouvais choisir entre les 2 technologies suivantes :
- calculatrice scientifique fx-92+ Spéciale Collège avec son application Algorithmique t'offrant un langage de tracé à la Scratch/Logo
- calculatrice graphique Graph 35+E II ou Graph 90+E avec son application Python
Pour chacune des 2 catégories étaient à gagner 2 superbes gros lots ; 1 pour le meilleur dessin sur fx-92+ Spéciale Collège, et 1 pour le meilleur dessin sur Graph 90/35+E II :
- catégorie étudiants : 1 enceinte JBL Charge 3 ou 1 appareil photo Instax avec pack de recharge photos (valeur 130€)
- catégorie classe :
- pour le professeur : 1 service à raclette (valeur 30€)
- pour chaque élève du groupe : 1 montre Casio ou 1 enceinte JBL Go (valeur 30€)
(dans la limite de 35 élèves)
Un superbe concours, merci Casio !
![Favorite :favorite:](./images/smilies/favorite.png)
Nous avions très hâte de pouvoir te présenter les productions réalisées que nous espérions à la mesure de l'événement. Plusieurs candidats nous les ont fort aimablement partagées, découvrons tout cela ensemble.
- Hors concours Graph 90+E Python :
- Classes Graph 90+E Python :
Hors concours Graph 90+E - Réveillon de Noël au chalet sylvestre - critor
Go to top![](https://i.imgur.com/IBJSj0st.png)
J'ai donc l'honneur et l'immense plaisir de vous partager ma participation finale comme promis, préparée avec soin un petit peu chaque jour à compter de début décembre. J'ai pris soin de ne pas dépasser les 300 lignes avec pour chacune au plus 256 caractères, afin que le script reste visualisable dans l'éditeur Python de la Graph 90+E.
(c'est toutefois du concentré, et ce n'est pas demain la veille qu'il tournera sur les modèles de milieu de gamme concurrents...
![:p :P](./images/smilies/razz.png)
L'année dernière je t'avais conçu non pas un simple dessin, mais une animation déplaçant diverses images à l'écran.
Cette année il ne s'agit ni d'un simple dessin, ni d'une simple animation, mais d'une véritable scène 3D dans laquelle tu te déplaces. Le script, utilisant la bibliothèque de tracé par pixels casioplot, t'emmenène littéralement réveillonner au chalet au fin fond de la forêt, que j'ai soigneusement préparé pour te recevoir (arbre de Noël, guirlandes à LEDs RVB, vase de fleurs) et te sustanter (foie gras, dinde, bûche, bûche, corbeille de fruits, bonhomme en pain d'épice).
Pour cela le script joue une animation aléatoire en utilisant un moteur 3D que j'ai codé pour l'occasion, basé sur la technique du point de fuite.
Les images utilisées (crédits indiqués en commentaire du code) ont été retouchées puis converties en code Python pour Graph 90+E à l'aide de mon outil de conversion en ligne img2calc.
- Code: Tout sélectionner
from random import randint
from casioplot import set_pixel, show_screen, draw_string, clear_screen
from math import sin, cos, pi, sqrt, log, ceil
W, H = 384, 192 # FENETRE GRAPHIQUE PYTHON GRAPH 90+E
# EXTENSION CASIOPLOT (FONCTIONS DE DESSIN DE PRIMITIVES)
def draw_line(x1, y1, x2, y2, c):
m, a1, b1, a2, b2 = 0, round(x1), round(y1), round(x2), round(y2)
if (x2 - x1) ** 2 < (y2 - y1) ** 2: m, a1, a2, b1, b2 = 1, b1, b2, a1, a2
if min(a1, a2) != a1: a1, b1, a2, b2 = a2, b2, a1, b1
for a in range(max(0, a1), min(m and H or W, a2 + 1)):
b = round(b1 + (b2 - b1) * (a - a1) / ((a2 - a1) or 1))
set_pixel((a, b)[m], (b, a)[m], c)
def fill_rect(x, y, w, h, c):
if w<0: x, w = x + w + 1, -w
if h<0: y, h = y + h + 1, -h
x1, y, x2, y2 = max(0, round(x)), max(0, round(y)), min(W - 1, round(x) + w), min(H - 1, round(y) + h)
for y in range(y, y2 + 1):
for x in range(x1, x2 + 1): set_pixel(x,y,c)
def fill_trapeze_horizontal(ya, x1a, x2a, yb, x1b, x2b, c):
if abs(yb - ya) < 1: return
if yb < ya: ya, x1a, x2a, yb, x1b, x2b = yb, x1b, x2b, ya, x1a, x2a
for y in range(max(0, ya), min(H, yb + 1)):
xt1, xt2 = interp(x1a, x1b, ya, yb, y), interp(x2a, x2b, ya, yb, y)
if xt1 >= xt2: break
fill_rect(xt1, y, xt2 - xt1 + 1, 1, c)
def fill_trapeze_vertical(x1, y1a, y1b, x2, y2a, y2b, c):
if x2 == x1: return
if x2 < x1: x1, y1a, y1b, x2, y2a, y2b = x2, y2a, y2b, x1, y1a, y1b
for x in range(max(0, x1), min(W, x2 + 1)):
yta, ytb = interp(y1a, y2a, x1, x2, x), interp(y1b, y2b, x1, x2, x)
fill_rect(x, yta, 1, ytb - yta + 1, c)
def draw_ellipse(x, y, rx, ry, c, fill=0):
dx, dy, rmin, rmax, w, h = rx >= ry, rx < ry, min(rx, ry), max(rx, ry), 0, 0
while h <= ry and w <= rx:
d = rmin * sqrt(1 - ((w + h) / rmax)**2)
for sy in range(-1, 2, 2):
for sx in range(-1, 2, 2):
if fill: fill_rect(x + sx*w, y + sy*h, sx*dy*d or 1, sy*dx*d or 1, c)
else: set_pixel(round(x + sx*w + sx*dy*d), round(y + sy*h + sy*dx*d), c)
w, h = w + dx, h + dy
# COULEURS ET FONCTIONS
C_SOL_INT, C_FOND_INT = (170, 96, 40), (234, 234, 234)
def darker_color(c): return [v // 2 for v in c]
def hsv_2_rgb(h, s=1, v=1):
c, h = v * s, (h % 1) * 6; m, x = v - c, c * (1 - abs((h % 2) - 1))
return [round((v + m) * 255) for v in (h<1 and (c, x, 0) or h<2 and (x, c, 0) or h<3 and (0, c, x) or h<4 and (0, x, c) or h<5 and (x, 0, c) or (c, 0, x))]
# FONCTIONS DE DESSIN SPECIFIQUES SCENE 3D RENDUE
def draw_mur(droite=0):
x_pplan_piece, y1_pplan_piece, y2_pplan_piece, x_pplan_fenetre, y1_2plan_piece, y2_2plan_piece = getx(I_PIECE_PP, droite), gety(I_PIECE_PP, 0), gety(I_PIECE_PP, 1), getx(I_WIN_PP, droite), gety(I_WIN_PP, 0), gety(I_WIN_PP, 1)
x_dplan_fenetre, y1_3plan_piece, y2_3plan_piece, x_dplan_piece, y1_dplan_piece, y2_dplan_piece, c = getx(I_WIN_DP, droite), gety(I_WIN_DP, 0), gety(I_WIN_DP, 1), getx(I_PIECE_DP, droite), gety(I_PIECE_DP, 0), gety(I_PIECE_DP, 1), (217, 217, 217)
if droite and x_dplan_piece > x_pplan_piece or not droite and x_dplan_piece < x_pplan_piece: c = darker_color(c)
fill_trapeze_vertical(x_pplan_piece, y1_pplan_piece, y2_pplan_piece, x_pplan_fenetre, y1_2plan_piece, y2_2plan_piece, c)
fill_trapeze_vertical(x_dplan_fenetre, y1_3plan_piece, y2_3plan_piece, x_dplan_piece, y1_dplan_piece, y2_dplan_piece, c)
if x_pplan_fenetre != x_dplan_fenetre:
y1a_fenetre, y1b_fenetre, y2a_fenetre, y2b_fenetre, x = repos(y1_2plan_piece, y2_2plan_piece, .125, .375) + repos(y1_3plan_piece, y2_3plan_piece, .125, .375) + ((x_pplan_fenetre + x_dplan_fenetre) / 2,)
fill_trapeze_vertical(x_pplan_fenetre,y1_2plan_piece,y1a_fenetre,x_dplan_fenetre,y1_3plan_piece,y2a_fenetre,c)
fill_trapeze_vertical(x_pplan_fenetre,y1b_fenetre,y2_2plan_piece,x_dplan_fenetre,y2b_fenetre,y2_3plan_piece,c)
draw_line(x, (y1a_fenetre + y2a_fenetre) / 2, x, (y1b_fenetre + y2b_fenetre) / 2, c)
draw_line(x_pplan_fenetre, (y1a_fenetre + y1b_fenetre) / 2, x_dplan_fenetre, (y2a_fenetre + y2b_fenetre) / 2, c)
def draw_pancarte(x, y, txt, ctext, cfont, taille):
x, y, LH_POLICE = round(x), round(y), {"small":8, "medium":14, "large": 20}; y = y - LH_POLICE[taille]
draw_string(x, y, txt, ctext, taille)
def draw_haie(img, pal, w, h, z, i, gd = 0):
x, dx, pancarte = getx(i, 1) - w*z, w * z * 2 * sqrt((i + 1) / i), 0
while x > -w*z + 1: x -= dx
while x <= W - 1:
if not gd or gd <= 0 and x + w*z < getx(i, 0) or gd >= 0 and x > getx(i, 1):
draw_image(img, x, gety(i, 1) - z*h, w, pal, zoomx=z, zoomy=z)
if not pancarte and gd == 1 and i in (I_TREE3B, I_TREE2B, I_TREE1B):
draw_pancarte(x + 2*w*z/3, gety(i, 1),"CASIO",(0,0,191),(255,255,255),{I_TREE3B:"large",I_TREE2B:"medium",I_TREE1B:"small"}[i])
pancarte = 1
x += dx
def draw_foret(gauchedroite = 0):
if gauchedroite:
l=((D_SAPINM,C_SAPINM,L_SAPINM,H_SAPINM,1,I_TREE1M),(D_SAPING,C_SAPING,L_SAPING,H_SAPING,1,I_TREE1B),(D_SAPING,C_SAPING,L_SAPING,H_SAPING,2,I_TREE2B),(D_SAPING,C_SAPING,L_SAPING,H_SAPING,3,I_TREE3B))
for v in l: draw_haie(v[0], v[1], v[2], v[3], v[4], v[5], gauchedroite)
else: draw_haie(D_SAPINP, C_SAPINP, L_SAPINP, H_SAPINP, 1, I_TREE1S, gauchedroite)
def draw_murforet(gauchedroite=0):
l = [gauchedroite == -1, gauchedroite == 1]
for v in getx(I_PIECE_PP, gauchedroite == 1) < getx(I_PIECE_DP, gauchedroite == 1) and l.reverse() or l:
if v: draw_mur(gauchedroite == 1) # mur + fenetre
else: draw_foret(gauchedroite) # foret
def draw_guirlande(y, x1, x2, n, h):
x1, x2 = round(min(x1, x2)), round(max(x1, x2)); w = x2 - x1 + 1
for x in range(max(0, x1), min(W, x2 + 1)): set_pixel(x, round(y + h*abs(sin((x - x1) * n * pi / w))), hsv_2_rgb((x2 - x) / w))
def draw_table(y_pplan, y_dplan, h_pplan, h_dplan):
x1_pplan_table, x2_pplan_table, x1_dplan_table, x2_dplan_table = repos(getx(I_TABLE_PP,0),getx(I_TABLE_PP,1),.175,.175) + repos(getx(I_TABLE_DP,0),getx(I_TABLE_DP,1),.175,.175); y_dplan, y_pplan, c = y_dplan - h_dplan, y_pplan - h_pplan, (159, 50, 52)
draw_guirlande(y_dplan + 1, x1_dplan_table, x2_dplan_table, 5, h_dplan / 4) # guirlande a la table en arriere plan
fill_trapeze_horizontal(y_dplan, x1_dplan_table, x2_dplan_table, y_pplan, x1_pplan_table, x2_pplan_table, y_dplan > y_pplan and darker_color(c) or c) # table
lxy = ((x1_pplan_table, y_pplan), (x2_pplan_table, y_pplan), (x1_dplan_table, y_dplan), (x2_dplan_table, y_dplan))
for k in range(len(lxy)): # pieds de la table
xy, t = lxy[k], k >= len(lxy) // 2
w, h = t and 1 or 3, t and h_dplan or h_pplan
fill_rect(xy[0] - ((k % 2) and w - 1), xy[1] + 1, w, h, (127, 127, 127))
draw_guirlande(y_pplan + 1, x1_pplan_table, x2_pplan_table, 5, h_pplan / 5) # guirlande a la table au premier plan
def draw_repas():
l = (I_ROW1, I_ROW2, I_ROW3, I_ROW4, I_ROW5, I_ROW6, I_ROW7)
rx_assiette, ry_assiette = round((getx(I_TABLE_PP, 1) - getx(I_TABLE_PP, 0)) / 8), round((gety(I_TABLE_PP, 1) - gety(I_TABLE_DP, 1)) / 14)
lobj=((),(),((D_OIEP,L_OIEP,H_OIEP,C_OIEP,1,0),(D_VIN,L_VIN,H_VIN,C_VIN,0,-2)),((D_OIEC,L_OIEC,H_OIEC,C_OIEC,-3,0),(D_BUCHET,L_BUCHET,H_BUCHET,C_BUCHET,0,1)),((D_BISCUIT,L_BISCUIT,H_BISCUIT,C_BISCUIT,0,0),(D_CHAMPAGNE,L_CHAMPAGNE,H_CHAMPAGNE,C_CHAMPAGNE
,0,-2)),((D_FOIE,L_FOIE,H_FOIE,C_FOIE,0,0),(D_BUCHE,L_BUCHE,H_BUCHE,C_BUCHE,4,1)),((D_OIEG,L_OIEG,H_OIEG,C_OIEG,2,0),(D_FRUITS,L_FRUITS,H_FRUITS,C_FRUITS,0,-2),(D_VASE,L_VASE,H_VASE,C_VASE,0,-1)))
for k in range(len(l)):
i = l[k]
y_assiette, x1_assiette, x2_assiette = gety(i, 1), getx(i, 0), getx(i, 1); z, y_assiette = L_ZFACT[i]/L_ZFACT[I_ROW7], y_assiette - (gety(i, 1) - gety(i, 0))*26//100
lx_ext, lx_int = repos(x1_assiette, x2_assiette, (k % 2) and 1 / 3 or .25, (k % 2) and 1 / 3 or .2), repos(x1_assiette, x2_assiette, .5)
lx = ((k % 2) and lx_ext or lx_int) + ((k % 2) and lx_int or lx_ext)
for x in lx[:1 + (k % 2)]:
draw_ellipse(x, y_assiette, rx_assiette * z, ry_assiette * z, (255, 255, 255), 1)
draw_ellipse(x, y_assiette, rx_assiette * z, ry_assiette * z, (0, 0, 0))
for obj in lobj[k]:
draw_image(obj[0], lx[obj[5]] - obj[1]/2 + obj[4], y_assiette - obj[2] + 1, obj[1], obj[3])
if k < I_LUSTRE and k + 1 < len(l) and l[k + 1] > I_LUSTRE:
y_lustre, x1_lustre, x2_lustre = (gety(I_LUSTRE, 0),) + repos(getx(I_LUSTRE, 0), getx(I_LUSTRE, 1), .5) # lustre au plafond
draw_image(D_LUSTRE, x1_lustre - L_LUSTRE//2, y_lustre, L_LUSTRE, C_LUSTRE)
# MOTEUR 3D ET FONCTIONS
def interp(v1,v2,r1,r2,r): return v1 + (r - r1)*(v2 - v1)/(r2 - r1)
def repos(a1, a2, f1, f2=0):
l = a2 - a1 + 1
return a1 + l*f1, a2 - l*f2
def fuite(ai,bi1,bi2,af,bf,lz):
ai, af, bf = round(ai), round(af), round(bf)
if ai == af: return ((ai, bi1, bi2),) * len(lz)
l, da, iz = [], ai < af and 1 or -1, 0
for a in range(ai, af + da, da):
bt1, bt2 = interp(bi1, bf, ai, af, a), interp(bi2, bf, ai, af, a)
while iz < len(lz) and (bt2 - bt1) / (bi2 - bi1) <= lz[iz]:
l.append((a, bt1, bt2))
iz += 1
if iz >= len(lz): break
return l
def getx(iz, k):
if defil_vert: return (k and lx2y or lx1y)[iz][0]
else: return (abs(ly1x[I_PIECE_DP][0] - ly1x[I_PIECE_PP][0]) >= abs(ly2x[I_PIECE_DP][0] - ly2x[I_PIECE_PP][0]) and ly1x or ly2x)[iz][1 + k]
def gety(iz, k):
if not defil_vert: return (k and ly2x or ly1x)[iz][0]
else: return (abs(lx1y[I_PIECE_DP][0] - lx1y[I_PIECE_PP][0]) >= abs(lx2y[I_PIECE_DP][0] - lx2y[I_PIECE_PP][0]) and lx1y or lx2y)[iz][1 + k]
def sign(x): return (x > 0) - (x < 0)
# PARAMETRES SCENE 3D RENDUE
W_PIECE, H_PIECE, N_FESTONS, H_FESTON, L_ZFACT = W * 3 // 4, H, 3, H // 7, (1, .97, .97, .95, .83, .763, .69, .65, .633, .56, .52, .508, .475, .45, .395, .34, .317, .28, .254, .22, .20, .19, .17, .134)
I_PIECE_PP,I_TAPIS_PP,I_TREE3B,I_TABLE_PP,I_ROW7,I_TREE3M,I_ROW6,I_WIN_PP,I_TREE2B,I_ROW5,I_LUSTRE,I_TREE2M,I_ROW4,I_WIN_DP,I_ROW3,I_ROW2,I_TREE1B,I_ROW1,I_TREE1M,I_TABLE_DP,I_TAPIS_DP,I_SAPIN,I_PIECE_DP,I_TREE1S = range(len(L_ZFACT))
# IMAGES - converties sur : https://tiplanet.org/forum/img2calc/?mode=script&target=cg
def draw_image(rle, x0, y0, w, pal, zoomx=1, zoomy=1):
x0, y0, nbits, i, x = round(x0), round(y0), ceil(log(len(pal), 2)), 0, 0; maskval, maskcnt = (1 << nbits) - 1, (0xFF >> nbits >> 1) << nbits
while i<len(rle):
v = rle[i]; mv, c = v & maskval, (v & maskcnt) >> nbits
if (v & 0b10000000): i += 1; c |= rle[i] << (7 - nbits)
c += 1
while c:
cw = min(c, w - x)
if mv:
col = pal[mv]
for l in range(0, zoomy, zoomy < 0 and -1 or 1):
for k in range(cw):
for p in range(0, zoomx, zoomx < 0 and -1 or 1): set_pixel(x0 + (x + k)*zoomx + p - (zoomx < 0), y0 + l - (zoomy < 0), col)
c, x = c - cw, (x + cw) % w
y0 += x == 0 and zoomy
i += 1
# sapin decore - retouche a partir de : https://kandipatterns.com/patterns/holidays/christmas-tree-26865
L_SAPIND,H_SAPIND,C_SAPIND,D_SAPIND=29,35,(0,(248,192,0),(0,120,0),(64,208,0),(240,248,232),(168,144,128),(232,0,0),(0,96,248),(128,0,248),(0,48,0),(64,0,0),(152,64,16)),(b'\xd0\1\1\x90\3A\x80\3!\x90\3\1\2\1\x90\3"\x90\3\3\2\3\4\5\xd0\2\1C\xd0\2\25\24#\4'
b'\xd0\2\2T\5\xc0\2\26\3\4\3\5\2\21\x90\2\23\26#\4\23\1\x80\2\2\x93\1\4\5\x80\2\2\23\25D\5\22\xd0\1\a\4C\25\27\3\5\3\xd0\1\2\5$C\x173\21\x90\1\30\2\25\xf4\0\5\23\2\21\x90\1\b\23\2\3\4\5\24%\4#\4\3\x90\1\t\2\4#\4\3\5\30C$\5\x90\1\t\5\24\3\5\23\30#\24\25\t'
b'\xb0\1\2\5\4C\25$\5#\4\5\xf0\0\xe3\1\22\24\5\xf0\x003\2\3\5D\5\3\2\3\2\5C@\t\2\3\26\3\22\25\4\5\xa3\1\2\t@\t\2\26\23\t\xf3\0\26\3\2\23\2\t\21\20\27\31\22\xf3\0"\26\t\3\2)\21\20\a\2\39\2\23\x023\29S \t\2c\21"\30\x93\1\2\0)\3\2\21#\21\23\t\30\3\2#\22\23'
b'\2\t\20\t\22\t\21\x023\22#\2\t\2\3\2i\20\2I\2\3\22\31\22\3)\229\27\t\20)\0\31\22)\27\t\29\2\20\31\27\20\31@\2)\n\27" \31\xd0\1\t\20\v*\2\n\v\xd0\2k\xe0\2K\xb0\1')
# lustre - retouche a partir de : https://www.deviantart.com/almondkinomotovs/art/Pixel-art-vintage-2-c-447280129
L_LUSTRE,H_LUSTRE,C_LUSTRE,D_LUSTRE=30,34,(0,(192,180,24),(224,208,40),(248,252,144),(248,252,168),(248,252,0),(248,0,112),(200,176,80)),(b'H!\2!\xb0\1\21\xd8\1\1\xe0\1\1\xe0\1\1\xe0\1\1\xe0\1\1\xe0\1\1\xe0\1\1\xb0\1\3 \1 \4\xf8\0\3\5\3\30\1\30\4\5\48'
b'\x040\6 \1 \6(\3\0\4\5\4(\6 \1 \6 \3\5\3\0\x060\6 \1 \6(\6\b\x060\2 \1 \2(\6\b\6\20\4\20\a\30\21\30\1\20\3\b\6\b\2\b\4\5\4\b\17\20\21\30\1\b\3\5\3\0\2\b\1\20\6\30\1\b\t\2\t\b\t\20\6\b\1\0\1\30\6 \31\2!\30\6\20\t\30\2(\2\1\22\1\2(\2\20\21\30\2\b\22\1\1'
b'"\22\b\2\20\t\0\t\30\n\b\t\0\1\2\1\0\t\b\n\30\1\20\t(\t\0\t\2\t\0\t(\t\309\b\1\0\2\0\1\b9`\t\b\2\b\t\x90\1\5\2\1\20\2\20\1\2\5\xa0\1"\xc8\1\22\xd8\1\4\xd8\1\4\5\4\xc8\1\4\25\4\xc0\1\4\25\4\xc8\1\4\5\4\xd8\1\4h')
# grand sapin - retouche a partir de : https://www.reddit.com/r/PixelArt/comments/zbp65h/a_snowy_tree/
L_SAPING,H_SAPING,C_SAPING,D_SAPING=57,71,(0,(144,172,184),(184,192,200),(208,216,216),(240,244,240),(0,44,48),(32,76,40),(0,28,48),(128,148,72),(64,112,32),(104,128,160),(16,24,64),(48,48,40),(48,56,40),(88,56,72),(120,84,88)),(b"\xb0\3\21\xe0\6\1\2\1"
b"\xd0\6\1\2\1\xd0\6\1\2\1\xd0\6\1\3\2\1\xb0\6\1\4\3\22\1\xa0\6\1\4\23\2\1\x90\6\1\x043\21\xe0\5\21\x043\1\3!\xa0\5!\4\3\22\23\1#\21\xa0\5\1\22\3\22\23!\3\1\xb0\5\x012\23\21\5\21\xd0\5\21\2#\21\6\5\a\xc0\5\1\6\5A\5\6\25\a\xb0\5\1\b\x065\26\t\6\5\a\xa0\5"
b"\21\22\t&\t2\21\xf0\4!#\29\x023\2\21\xc0\4\1\3\4\1#Bc\2\1\xb0\4\1\4C\2\xb3\1\1\xc0\4\21#\22C\2C\1\xd0\4\5\1\23\22C\22C\1\xb0\4\21\25\21\2C\"#\21\aa\x80\3A\32\25\n\x023\1\n\1#\1\25C\21\xa0\3:\25\26\5A\n\x151\x053!\xd0\3\25\b)\6\5:\x95\x011\xe0\3\a\b\t\b"
b"\tF\25\26\5V\25\1\27\v\xa0\3%\b\t\b\31&\t\x96\1\5\x165\27\x90\3\25(\31\269\26)6\25&\25\a\xb0\3\5\b\31&I\69F\25&\a\xd0\3\a\31\26\t2)\3)\6\t\26\5\21&\a\xd0\3%\t\22#)\23)\21\6\1\23\21\6\5\a\x80\x031\5\2\25\2C\x023\31\23\x013\2\1\26'\xc0\2\21\x143\2S\x023"
b"\6\t\23\x023\2\x016\a\xc0\2\21\3\22\x93\1\x023\6\t\23\2\21\23\22\1\26\a\xe0\2\5\21\22\1c\x123\26#\2\21\"\1\6\a\x90\3\25\t\1#\2\23\22\1\23\2\23\6\1\23\2\1\6!\6\a\x80\3\25\b\6\5\1\23\22\3\22\1\2\23\"\1\6\1\3\1\6\aF\a\xc0\2\25(&\1\3\22\23\1\27\2#\21\27\6"
b"\1\26\27&\a\5\27\xe0\1\5\a\25(F\x012\3\1\5\a\1\23\x015\27\6\a\25'%\1'\xa0\1\25\b\x143\26\3\2\6\21\2\21\25\26!\x056\5\a\5&\25\6%!7\xf0\0\5\t\2c\2\26\25\1\25\6\t\26\1\25V\25\xf6\x005\21\n\a\x80\1\5\t\x123\2\x016\5)&\x056)V2\21\6%\n\27\x80\1\25\t\1\2\23"
b"\21&I\x86\19FR\1%\27\xb0\1\5A\6\x013)\6\31\6\x196I\6\x191\2\21\5\a\v\xc0\1\v\x051\6\x013\1\t\26\t\2Y&)\6)&1\5\a\v\xa0\1\27\6G\6\1#\1\t\26\31\"\t\2)&\31\269\26\25'\x90\1\33\30\6\x026\aA\6\a\v\t\2#\2\3\tV\t\6\t\5'\t\6\5\a\5'@\v'\30\31\2\3\1&\5\a67\x013"
b"\21G&\31\27\5'5' \v(\t\21\2#\1\26\x157\26\5\a\t\1\23\21\27\5\6\5'6\a\25\6\25\26\5W\0\27\31!#\2\1\x86\1\25\27\21\6\a\x056%G\5&\t\1\n\6\n\a\6\25\a \a\31\6\1#\2\1\tF\x196\5'\5&\t6U\6\31!*\6\5\a0\a\t\6\t\1\23\22\1\31&\t\21V\25\26\t\6\31\x96\1\t\21\n\1\32\6"
b"\5\a@\a\26\t\21\22\21\31\6!\2\1\31f\21\6I6\tA*\25\27P\a)\6\21)\26\1\23\2\1961\x99\1A\n%\a\xf0\0\27\26I\26\1\23\22\1\31\26\5\26\2Q\6\31\6\t&1\n%\a\xa0\1\27F\31\x061\31\26\5\26\2aV\5&\1\n\25\27\xd0\1\v\27\5\31\696\25\26!\x95\1\6\5\a\25\26\5\a\xa0\2\a\26Y"
b"\26\25&\21\5'\25'5\27%\27\xa0\2\xf7\0\26\5\x176\5\27\34\a\5\a\x1c7\20'\xb0\3\a\6\x057\26\5\27<\27\34\v\xb0\4'\0\a\x1c7\xfc\0\a\x80\5\a\34=\16\f\16\f\16,\a\x80\5\a.,.\f\16\34\a\x90\5\a\36\17N\34.\f\a\x80\5\a\36\37>\34\36\34\a\x80\5\a\36/.\34\36\34\a\xf0"
b"\4\a./\16\37\16\f\36\34\a\xf0\4\a\36/\36\37\16\f.\34\a\xd0\4\27\36/\36\37\16\f\36,\a\xe0\4\r\f\36\37\xfe\0,\xb0\5N\34\16\34\xd0\2")
# moyen sapin # retouche a partir de https://www.reddit.com/r/PixelArt/comments/zljrsx/some_variations_of_firtree/
L_SAPINM,H_SAPINM,C_SAPINM,D_SAPINM=50,57,(0,(80,104,176),(184,192,208),(184,192,200),(48,80,120),(128,152,192),(168,184,208),(160,180,216),(24,52,32),(40,76,64),(32,92,80),(32,84,72),(128,156,192),(40,108,80),(72,116,88)),(b'\xe0\2\21\xf0\5\1\2\1\xe0\5'
b'\1\2\1\xd0\5\1\2\3\1\xc0\5\4"\3\1\xb0\5\4\23\5\2\3\1\xb0\5\4\25"\1\x90\5\4\25\6\2\5\2\3\1\x80\5\4\26\a\3\6\5\24\xf0\4\1\27\x062\4\x80\5\1b\5\1\xe0\4\1B\5\23\5\1\xe0\4\1B\6%\6\1\xc0\4\1\3B\a6\1\xc0\4\1\22\x052\a\26\2\6\1\xa0\4\1\6\25\aB\23\22\1\x90\4'
b'\x016\2\3\xf2\0\3\1\xf0\3\1\22&\3R\6\3\22\3\1\xc0\3\21"\3&\3B\6\1\3"\1\xa0\3\1\5B\5\26\5R\1\x052\21\x80\3\1\x057\5&\1\22\5"\5\1\5"\25\1\x80\3\1\5\26\1\26\a\1\b!\2\3\2\5!5\1\x90\x031\25\18\1\2\3\1\25Q\xa0\38\21X!\25\1\30\xc0\3\x88\1)8\218\xa0\3\30\t\n\v'
b'\t(\t\32\v\th\t\30\xf0\2\24\bJ)Z\v8\t\32\30\4\xa0\x024\b\5\34:\31Z\25)*\v\b$\x80\x024\f\3\x125\31\25\f\32\f%\31\32\34\5\bD\xe0\1\24\f"\a\23\6\f\t\5\22\3\f\n\f\23\2\f\31\f\3\22\fD\xd0\1\1\6\22\3B\26\fB\1\22\3\22\3\f\x032%\1\xe0\1\x016\5"&\fB\1\2\f2\3\aB'
b'%\1\xd0\1\3\1\26\f\22\f\26\5\1"\6\22\1\f\1\6"\3\a\6\2\3\22\1\25\1\xf0\1!\23\1\26\b\1"\a\3\2!\x162\25&!\xb0\2\21\b\21\b\5\22\6\5\22\1\30\1\26"\6\1\f\26\1\xb0\2\xf8\0"\f\6\3\2\1(\1\26\22\x061\xa0\2\x88\1\5"\5\a\6\5\18\x015\1H\xe0\1\xa8\1&\a\1\6\a\1X\1%\1'
b'\xf8\0\x80\1\x88\1\31(\1\26\5!\xf8\0!\xb8\1 \xf8\0\t\21)8!X9\x98\3\f\5\f\1)\b\th)\bY\30)\n\v\t\x88\1\0H\f%\1)\b\31H\31\v\31\b\32\t\v\31\b)J\tH0\30\n%\1\n\b\t\b\x99\1*\b*-\n\b\t\bj\t\30 \30*\25\1\32\30\t\35\nI\v=\n\t\n]\30\t\xfa\0\v\b\0\bJ+\32\31M\31\nm'
b'\t\n\35.\35\t\30\t\32\t*\v\b\0\b\33\n\b:\t\n\t\rN\r\v\r\36\35\36\r\32\35\16\f>\r\t(\t\b\32\b (\32\t\32\b\n\t^\r\v\x8e\1\n-\f\5\36\25\f\35\t\30\31\b0\b*\b\31\b\tn\n\r\x8e\1\n-,\16%\34.\30@\b\32\t\b\31\b^\n\r\v\xae\1\v\35\n\34\36\5\f\25.\bPh\n^\v\b\r\xae'
b'\1\n\35\n.\f\36\34\v\n\b\xf0\0H\n\36\r\36\n\r\30N\n\36\n>\t\n\t\36\r\25\f.\b\xb0\1\b\32\16\n.\n\30\rN:>\t\n\t*%\n\36\b\xb0\1\b*\36\n\r(.\n\36:N\30\33\t\34\5(\xc0\1\b\n\v\b\36\v\30\0\b.\b*\30\n\36\v\36\b\0(\n\f\5\t\xf0\1\30\0( \b\36\r\b\32\b\20\b\32\b.'
b'\b\20\b*\t\x80\3\b\36\t\0\x190\31\0\t\36\b (\xa0\3\31\xb0\1\31\x80\2')
# petit sapin # retouche a partir de https://www.reddit.com/r/PixelArt/comments/zljrsx/some_variations_of_firtree/
L_SAPINP,H_SAPINP,C_SAPINP,D_SAPINP=23,30,(0,(80,104,176),(184,192,208),(184,192,200),(160,180,208),(160,180,216),(128,152,192),(24,52,32),(32,88,80),(32,100,80),(72,100,160),(40,76,64),(40,108,80),(64,116,80)),(b"\xa0\1\21\xb0\2\1\2\1\xb0\2\1\2\1\xa0\2"
b"\1\3\2\3\1\x90\2\1\22\3\1\x80\2\1\24\3\22\1\xe0\1\1$\"\1\xe0\1\1\4B\3\1\xc0\1\1\x82\1\1\xa0\1\1\5\3\x82\1\1\x80\1\1$\6\22\4\22\3\4\2\4\1\xf0\0\1\24\21\24\1\4\5\4\1\24\1\x80\1\21\27\21\a\1\5\4!\xa0\1\a\30\27\b\a\21\27\xa0\1\1\tX\27\30\a\xf0\0\3\1\26\bf"
b"\b\26\1P\21\3\2\4\2\3B\4\5\6\5\4\x110\1\6\22\x062\6\3\2\6\3\2\1\24\1@1\22\4\1\a\1\24\1\23\21`'\21\n'\21\a\21\aP'\vG\v\x87\1\x107\30\v\27\v(\v\27\v\b\vg\xc8\1\v\30\v'\0\v<(\t\35\t(\t\b\t\34\v\0\v\31\f\v\26\r\fM\f\r\26\v,\v\a\34\v&-\6-\34&\v\34\a\0'\26\r"
b"\f\v\26\f-\t\r\26'0\a\34\27\26\f\v-\27\34\aP'\0\a\34+\35\a\0'\x90\1+ +`")
# grande oie - retouchee a partir de : https://www.istockphoto.com/fr/vectoriel/dinde-r%C3%B4tie-pixel-art-r%C3%B4ti-pix%C3%A9lis%C3%A9-illustration-vectorielle-gm1340627324-420643187
L_OIEG,H_OIEG,C_OIEG,D_OIEG=40,23,(0,(0,0,0),(240,176,48),(224,100,24),(232,96,24),(240,132,64),(168,12,16),(112,168,40)),(b'\x88\2\1pA`\t\2\1X\tC\tH\1\32\1@\tS\4\x031\b\1\n\1\2\1\0\x010\1\3\f[\4\3\35\3\t\r\22\t\2\1 \1\f\x8b\x015\2\1"\1\20\1\xab\1%\21\n'
b'\1\2\1\20\1\x93\1e\n\1\20\1\x8b\1u\2\1\30\1+\rCu\t\30\1\4#\x153\4\xfd\0\1 \1#\35;u\1(\1#\25;\xfd\0\1(\1\33\35;u\x010\1\33\35;m\3\x010\1\33%3m\4\x010\1#%+e\v\18\1\33-+U\23\18\1#%3E\23\1H\1#\35C%+\1H\1\4\3\26\33\26#\26\33\26\3\4\18\1\17&\17&\27&\17&\17\1'
b'(\1\27&\17&\27&\17&\27\1\30')
# petite oie - retouchee a partir de : https://www.istockphoto.com/fr/vectoriel/dinde-r%C3%B4tie-pixel-art-r%C3%B4ti-pix%C3%A9lis%C3%A9-illustration-vectorielle-gm1347229568-424770354
L_OIEP,H_OIEP,C_OIEP,D_OIEP=21,11,(0,(0,0,0),(224,100,24),(248,192,48),(240,132,64),(240,136,40),(120,160,48),(176,4,16)),(b' )0\21\20\t*\t\30\1\v\1\b\1J\31\23\1\0\1J,\3\1\b\1\n\4"<\1\b\1\n\f"<\1\b\1\n\f\x1a4\5\1\20\1\n\24\x124\2\1\20\1\22\f\32$\2\1 \1B'
b'\f\32\1\30\1\6\17\6\17\6\17\6\17\6\17\6\1\b')
# cuisse d'oie # retouchee a partir de https://www.flaticon.com/fr/icone-gratuite/cuisse-de-poulet_411006
L_OIEC,H_OIEC,C_OIEC,D_OIEC=15,14,(0,(0,0,0),(248,244,200),(224,100,24),(240,132,64)),b"\b\1`\1\2\1P\1\22\1P\1\22!0\1\2\1#\t(\1;\1 \1C\1\30\1K\1\20\1K\1\20\1\v\x043\1\30\1\3\x043\1\30\1\v\4+\1 \1\v\f\3\4\v\1(\1+\1\0"
# buche - retouchee a partir de : https://openai.com/dall-e-2/
L_BUCHE,H_BUCHE,C_BUCHE,D_BUCHE=40,15,(0,(224,52,40),(16,120,64),(0,160,88),(224,144,240),(224,180,240),(232,236,240),(0,0,0),(176,4,24),(64,28,16),(88,60,48),(240,224,176),(160,76,72),(152,92,72),(184,176,176),(184,108,80)),(b"\x80\1\1\2\3@\4\5\0\2\3\2"
b"\6P\3\2\xb0\1'\0\1\b\t\3\22\a\0\1$2\a\1\6\n\a\23\x027`\a&\1\b\26'\6\1\b\6%\27\3\v\30\6'\x056\a@\aF\4V\5\b\24\5\4\26\5\4\30F\v\x0670\a\x065\x1b6\5\6\5\4\33\6\25\6\5\v&\5\6\5\6\a,\a \a\6\5\26\25\26\a\26\25\6\5&\4\26\5\n\6\25\26\v\a\6\a\r&\a\20\a\6\5\33\6"
b"\n\26\a\26\5\16&\36&\27\26\n\26\v\a\6\a\6\34\6\a\20\27\f\26\a\f\a\6\a\26\a\f\a\6\a\34\a\6\a\f\a\6\a\f\n\6\a\17\t\17\f\16\6\f\a\0\a\t\34\26\t\f\a\6\a\26\a\f\a\6\a\34\a\6\a\f\a\6\t\34\6\t\17\t\17\f\16\v\17\a\0\a?\a/\a\17\a\t/\a?\a/\a/\a\f\17\t\17\34\v\f"
b"\17\27\f\x8f\1\34O\35\xaf\1\r\t\r\16\6\r\6\17\27]\6\17\35\t\n\r\17\r\6m\t-\16-\a\r\26\16\6\17\27\35\16m\31\xad\1\tm\a=\6\t7\xfd\0\t\nm\17-\t-\17-\a\r\6\n\6\t\a \x87\4\33\a\20")
# tranche de buche - redessinee a partir de https://manufacturedupixel.com/buche-noel
L_BUCHET,H_BUCHET,C_BUCHET,D_BUCHET=11,7,(0,(0,0,0),(160,76,72),(184,108,80),(232,236,240),(184,176,176),(240,224,176)),b"\b)\30\1*\31\v$\v\t\3\2\5\22\5\6\3\t\3\2\5\2\6\4\5\6\3\t\v$\v\1\0\t&\t\0"
# foie gras - redessinee a partir de https://www.shutterstock.com/fr/image-vector/foie-gras-appetizer-icon-cartoon-vector-2171427293
L_FOIE,H_FOIE,C_FOIE,D_FOIE=17,12,(0,(0,0,0),(240,176,112),(248,196,136),(200,156,112),(240,156,88),(232,156,72),(240,168,88)),(b'\20Q \1\2K\1\b\t\v\4\v\4\3\f\33\1\0\1\5\1\2K\1\2\t\rQ\v\t\5\6\r\27\5"\v\t\35\37"\v\t\6\25\37"\v\t\6\25\x1f2\t\a\35\x172\t\2'
b'\6\25\x172\1\0\21\2\6\27\22\3\21\0')
# bonhomme pain d'epice - retouche a partir de : https://www.anyssa.org/classedesgnomes/wp-content/uploads/documents/francais/litterature/albums/bonhomme-pain-epice_pixel-art.pdf
L_BISCUIT,H_BISCUIT,C_BISCUIT,D_BISCUIT=12,16,(0,(0,0,0),(176,84,0),(232,224,144),(248,0,0),(0,128,0)),(b"\30\x190\1\32\1 \1*\1\30\1\2\1\n\1\2\1\30\1*\1\30\1\n\t\n\1\20\21\32\21\0\1\2\3\n\f\n\3\2\t\2\3*\3\2\1\0\t\n\r\n\t\20\1*\1\30\1\n\f\n\1\30\1*\1\30\1"
b"\v\t\v\1\30\1\n\t\n\1 \t\b\t\20")
# vase de fleurs - retouche a partir de : https://www.shutterstock.com/fr/image-vector/pixel-vase-wildflowers-clay-flower-pot-1781614178
L_VASE,H_VASE,C_VASE,D_VASE=25,47,(0,(0,0,0),(176,48,80),(208,236,224),(192,88,112),(88,240,240),(216,216,176),(232,208,40),(32,104,0),(200,188,136),(16,68,0),(96,56,112),(152,68,152),(176,120,176),(200,112,200),(64,44,88)),(b"\xb0\1!\xe0\1\1@\1\"\1\xc0"
b"\1\1\3\1 \x012\4\1\20\1\xf0\0\1\23\5\1\0\1\4\2\4\2\4\22\21\6\1P\21#!\22\24\"\1\26\3\x010\1\23'\23\1\22\4\22\4\2\1&\21\20\1#'#\1\b\4\b\2\b\3\6'\26\1\20\1\5\3'\23\1\0\1(\6\t\6'\6\t\6\1\20\21\5\23\n\1 \1\n\21\26'\3\6\x010\1\5\3\5\32\1\0\1\32\1\0\1\n\3\26"
b"\21P\1\3\21\n\1\0\1\n\1\0\1\32\3\26\1P\1\b\1\0\1\b\n\1\32\1\0\1\b\21\6\1`\1\b\n\21\n\b\1\32\21\n\b!\b\1P\1\bJ\bJ\b\21\n\b\1P\1\bZ\b:\b*\b\1`\1(\n\b*(:\b\1\xf0\0\1\v\1\n!J(\1\x80\1\1\xbb\1\21\x90\1\1\33\x8c\1\v\1\xa0\1\1\33\x8c\1\v\1\xa0\1\1+\\\r\33\1"
b"\xa0\1\1+,\16-\33\1\xb0\1\1\33,\16-\v\1\xc0\1\1\33,\16-\v\1\xc0\1\1\33,\16-\v\1\xd0\1\1\v,\36\r\v\1\xe0\1\1\v,\36\r\v\1\xd0\1\1\33\34.\r\17\v\1\xc0\1\1\33\34.\r\17\v\1\xc0\1\1\33,\16\35\17\v\1\xc0\1\1\33,\16\35\17\v\1\xb0\1\1+,\16\35\17\33\1\xa0\1\1+,"
b"\16\35\37\v\1\xa0\1\1\33<\16-\17\v\1\xa0\1\1\33<\16-\17\v\1\x90\1\1+L-\17\33\1\x80\1\1+L\16\35\37\v\1\x80\1\1\33\\\36\v\r\17\v\1\x80\1\1\33l\16\v\r\17\v\1\x80\1\1\33l\16\v\r\17\v\1\x80\1\1\33l\16\v\r\17\v\1\x80\1\1\33\\\36\r\17\33\1\x90\1\1+L\35\17\v\1"
b"\xa0\1\1+L\35\17\v\1\xa0\1\1+\\\37\v\1\xb0\1\1\33_\33\1\xd0\1\1\xfb\0\1\xf0\0")
# bouteille de champagne - retouchee a partir de : https://www.shutterstock.com/fr/image-vector/pixel-art-bottle-glass-jar-wine-1025910367
L_CHAMPAGNE,H_CHAMPAGNE,C_CHAMPAGNE,D_CHAMPAGNE=12,26,(0,(0,0,0),(232,208,168),(24,92,64),(48,136,72),(96,196,72),(16,56,64),(232,240,240)),(b' \t@\1\n\x010\1\32\1(\1\3\4\5\3\1(\1\3\f\3\x010\1\16\18\1\6\3\18\1\6\3\x010\1\6\23\1(\1\6\3\5\3\1 \1\6\v\5\v\1'
b'\30\1\6\23\5\3\1\20\1\6\3\26\5\6\3\1\b\1\6\3\26\5\6\3\1\b\1\6\3\26\5\6\3\1\0\1\6\x036\3\t\6\3\26\n\a\n\t\6\3\26\n\a\n\t\6\3\26\n\a\n\t\6\3\26\n\a\n\t\6\3\26\n\a\n\t\6\3\26"\t\6\x036\3\t\6\x036\3\t\6C\1\0\1>\1\0')
# bouteille de vin - retouchee a partir de : https://fr.123rf.com/photo_92573889_bouteille-de-style-de-jeu-r%C3%A9tro-vin-pixel-art-cartoon.html
L_VIN,H_VIN,C_VIN,D_VIN=7,18,(0,(40,40,40),(224,8,40),(32,28,32),(0,140,24),(40,228,80),(248,252,248),(248,236,104)),(b"\b\21\30\1\2\1\30\3\1\3\30\1\4\1\30\1\4\1\20\1\5\f\1\0\1\5\6\24\t\5\34!\f\t\6\a\1\f\t\6\a\1\f\t\6\a\1\f\t\6\a\1\f\t\6\a\1\f\t\6\a\1\f!"
b"\f\t\5\34\t\5\34\1")
# corbeille de fruits - retouchee a partir de : https://myloview.fr/papiers-peints-vecteur-pixel-art-panier-fruit-no-66B7069
L_FRUITS,H_FRUITS,C_FRUITS,D_FRUITS=48,26,(0,(0,0,0),(104,52,0),(192,156,24),(176,128,80),(240,180,128),(224,0,0),(120,132,0),(176,196,16),(224,160,168),(104,152,112),(248,120,152),(80,172,64),(232,108,0),(216,196,104)),(b"\x80\2A \2\xd0\x011\x90\2!C!\2"
b"\21\0\21\xf0\0\x014\x010!\x80\1\1\23\25\23\21&\2\26\1\23\1P\1\4!\24\1\20\1$\1@A3\1\x86\1\1\23\x010\1\4\1 \1\24\1\0\1\4\1\24\1\20\21\27(\21\3\1&\31FA\20\1\4\1@\1\24\21\4\21\4\1\0\1\b78\21&\31F\x015Q@\1\4\21\4\21\24\1\b7X\1\x96\1\1\5!Z\x010\1\4\21\24\21"
b"\4\1\30\27h\1\x96\1\21+\1Z\1 \1\4\1\0\1\4\21\4\1\xa8\x011V\1[\1J\1\20\1\24\1\0\1\24!\x98\1\1<\x016\1\v\31K\1:!\24\1 \1\4\1\5\1\xf8\0\21\r\21\f!&\1\v\31K\1:\1\5\1\4\1@\21\4\1h\1=\1\f\1\35\1\6\1\x8b\1\1:\1\4\21`\1\4\5\1H\1\35\25\35\21-\21\x8b\1\1*\1\5\4"
b"\1\xf0\0\1\24\5\1(\1-\25\xfd\0\1\36[\1*\1\5\24\1\x80\1\1\24\5\21\b\1\xbd\1\1>K\1\n\21\5\24\1\x90\1\1$\25!\xad\1\1\16\3.+!\25$\1\xa0\1\x014%QM\1\36Q%4\1\xc0\1\1TU\xf1\0UT\1\xd0\1!\x94\1\xf5\0\x94\1!\xe0\1\1\2\21\xf4\2\21\4\1\x80\2\1\2\x041\xf4\x011\2\4"
b"\1\xa0\2\1\2\4\2\4\2ATA\4\2\4\2\4\1\xc0\2\1\2\4\2\4\2\4\2\4\2Q\4\2\4\2\4\2\4\2\4\1\xe0\2\21\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\21\x90\3\21\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\21\xd0\x031\4\2\4\2\4\2\4\x021\xf0\1")
# CODE PRINCIPAL
defil_vert, vx, vy, x_ref, x_ref_end, y_fuite, y_end, x1_pplan_piece = 0, 1, -1, -2 * W_PIECE, W - W_PIECE + 1, H // 2, H // 4, round(-1.73 * W_PIECE); x_end = x_ref_end
while 1:
if defil_vert and y_fuite == y_end: y_end = randint(1, H - 2); vx, defil_vert = sign(x_end - x1_pplan_piece), 0
elif not defil_vert and x1_pplan_piece == x_end: x_end = randint(-2 * W_PIECE, W + W_PIECE); vy, defil_vert = sign(y_end - y_fuite), 1
if not defil_vert: x1_pplan_piece += vx
else: y_fuite += vy
trash, x2_pplan_piece, y1_pplan_piece, y2_pplan_piece, xf_piece = None, x1_pplan_piece + W_PIECE - 1, 0, H_PIECE - 1, round(W * .875 * (x1_pplan_piece - x_ref) / (x_ref_end - x_ref)) # calculs 3D
ly1x, ly2x = fuite(y1_pplan_piece, x1_pplan_piece, x2_pplan_piece, y_fuite, xf_piece, L_ZFACT), fuite(y2_pplan_piece, x1_pplan_piece, x2_pplan_piece, y_fuite, xf_piece, L_ZFACT) # plafond + sol
lx1y, lx2y = fuite(x1_pplan_piece, y1_pplan_piece, y2_pplan_piece, xf_piece, y_fuite, L_ZFACT), fuite(x2_pplan_piece, y1_pplan_piece, y2_pplan_piece, xf_piece, y_fuite, L_ZFACT) # murs gauche + droite
x1_dplan_piece, x2_dplan_piece, y1_dplan_piece, y2_dplan_piece = getx(I_PIECE_DP, 0), getx(I_PIECE_DP, 1), gety(I_PIECE_DP, 0), gety(I_PIECE_DP, 1)
clear_screen() # sol enneige
fill_rect(0,0,W,y_fuite,(16,18,64)) # fond
fill_trapeze_horizontal(y2_pplan_piece, x1_pplan_piece, x2_pplan_piece, y2_dplan_piece, x1_dplan_piece, x2_dplan_piece, C_SOL_INT) # sol interieur
draw_foret(0) # foret en arriere plan
x1_porte, x2_porte, y1_porte, y2_porte = repos(x1_dplan_piece, x2_dplan_piece, .625, .125) + repos(y1_dplan_piece, y2_dplan_piece, .25, 0)
fill_rect(x1_dplan_piece, y1_dplan_piece, x1_porte - x1_dplan_piece, y2_dplan_piece - y1_dplan_piece + 1, C_FOND_INT)
fill_rect(x2_porte + 1, y1_dplan_piece, x2_dplan_piece - x2_porte, y2_dplan_piece - y1_dplan_piece + 1, C_FOND_INT)
fill_rect(x1_porte, y1_dplan_piece, x2_porte - x1_porte + 1, y1_porte - y1_dplan_piece, C_FOND_INT)
draw_murforet(-1) # mur + foret de gauche
fill_trapeze_horizontal(y1_pplan_piece, x1_pplan_piece, x2_pplan_piece, y1_dplan_piece, x1_dplan_piece, x2_dplan_piece, C_SOL_INT) # plafond
c_tapis, lx_pplan, lx_dplan = [(255,255,0),(102,0,0)]*2, [], [] # tapis
y_pplan_tapis, x1_pplan_tapis, x2_pplan_tapis, y_dplan_tapis, x1_dplan_tapis, x2_dplan_tapis = gety(I_TAPIS_PP, 1), getx(I_TAPIS_PP, 0), getx(I_TAPIS_PP, 1), gety(I_TAPIS_DP, 1), getx(I_TAPIS_DP, 0), getx(I_TAPIS_DP, 1)
for k in range(4): z = .1 + k*.05; lx_dplan.append(repos(x1_dplan_tapis, x2_dplan_tapis, z, z)); lx_pplan.append(repos(x1_pplan_tapis, x2_pplan_tapis, z, z))
for k in range(3):
fill_trapeze_horizontal(y_dplan_tapis, lx_dplan[k][0], lx_dplan[k+1][0], y_pplan_tapis, lx_pplan[k][0], lx_pplan[k+1][0], c_tapis[k])
fill_trapeze_horizontal(y_dplan_tapis, lx_dplan[k+1][1], lx_dplan[k][1], y_pplan_tapis, lx_pplan[k+1][1], lx_pplan[k][1], c_tapis[k])
fill_trapeze_horizontal(y_dplan_tapis, lx_dplan[3][0], lx_dplan[3][1], y_pplan_tapis, lx_pplan[3][0], lx_pplan[3][1], c_tapis[1])
draw_guirlande(y1_dplan_piece, x1_dplan_piece, x2_dplan_piece - 1, N_FESTONS, round(H_FESTON*L_ZFACT[I_PIECE_DP])) # guirlande au plafond au dernier plan
y_sapin, x1_sapin, x2_sapin = gety(I_SAPIN, 1), getx(I_SAPIN, 0), getx(I_SAPIN, 1) # sapin decore au fond de la piece
x1_sapin += ((x2_sapin - x1_sapin + 1) * .625 - L_SAPIND) // 2
draw_image(D_SAPIND, x1_sapin, y_sapin - H_SAPIND, L_SAPIND, C_SAPIND)
y_pplan_table, y_dplan_table, h_dplan_table, h_pplan_table = [gety(I_TABLE_PP, 1), gety(I_TABLE_DP, 1)] + [(gety(i, 1) - gety(i, 0)) * 26 // 100 for i in (I_PIECE_DP, I_PIECE_PP)]
yh_pplan_table, yh_dplan_table = y_pplan_table - h_pplan_table, y_dplan_table - h_dplan_table
lh = [0, 1]
for h in x2_pplan_piece < x2_dplan_piece and lh.reverse() or lh:
if h:
lv = [0, 1]
for v in yh_dplan_table >= yh_pplan_table and lv.reverse() or lv:
if v: draw_repas() # assiettes + objets sur la table
else: draw_table(y_pplan_table, y_dplan_table, h_pplan_table, h_dplan_table) # table
else: draw_murforet(1) # mur + foret de droite
draw_guirlande(y1_pplan_piece, x1_pplan_piece, x2_pplan_piece - 1, N_FESTONS, H_FESTON) # guirlande au plafond au premier plan
show_screen()
Hors concours Graph 90+E - Menu en anaglyphe - Cirekraft/Schraf
Go to top![](https://i.imgur.com/fUHhQeet.png)
Une nouvelle fois nous avons donc du relief. Le script s'appuie de nouveau sur casioplot. Si tu retrouves la bonne paire de lunettes, tu pourras donc voir littéralement flotter le menu devant ton écran !
- Code: Tout sélectionner
from casioplot import *
CYAN = (112, 216, 200)
ROUGE = (248, 148, 120)
GRIS = (160, 120, 56)
BLC = (255, 255, 255)
def rect(x, y, l, h, z, coul):
for i in range(l * h):
c = get_pixel(x + z + i % l, y + i // l)
if c != GRIS and c != coul:
set_pixel(x + z + i % l, y + i // l, coul if c == BLC else GRIS)
def dessin(x, y, z, l, h):
rect(x, y, l, h, 0, ROUGE)
rect(x, y, l, h, z, CYAN)
def txt3d(txt, x, y, z, t, taille="medium"):
h = 170
draw_string(0, h, txt, GRIS, taille)
for c in range(0, 150):
for l in range(h, 190):
if get_pixel(c, l)[0] < 255:
dessin(x + 2 * c, y + 2 * l - 337, z, t, t)
draw_string(0, h, txt, BLC, taille)
clear_screen()
txt3d("* *", 40, 0, 30, 4, "large")
txt3d(" MENU", 40, 0, 50, 4, "large")
txt3d("Huitres", 10, 48, 20, 2, "small")
txt3d("Amuse-bouche", 43, 75, 50, 2)
txt3d("Dinde aux marrons", 10, 110, 10, 2, "small")
txt3d("Buche", 210, 135, 50, 3)
txt3d("Champagne", 20, 144, 30, 3, "small")
show_screen()
Classe Graph 90+E - grande table de Noël - cent20
Go to topContrairement à l'année dernière, son équipe de choc de cette année ne s'appuie pas sur la bibliothèque turtle mais casioplot, ce qui lui permet d'aller beaucoup plus loin dans les effets visuels et la finition.
Les différents élèves ont donc conçu des sprites à afficher sur une scène de table de Noël, en se basant sur la technique exposée lors de notre atelier jeu vidéo en novembre dernier.
Mais laissons de suite le poète Adam Y. te décrire la scène en alexandrins :
Adam Y. a écrit:En ce jour de Noël est dressée la grand table ;
Friandise et champagne accompagne à l’oubli
Et la bûche enivrant dont le goût est affable
Resplendit sous l’éclat rutilant des bougies.
Tout convive a pris place et festoie du repas ;
Les présents emballés sont légués à autrui.
Enjoués, ces gens rient, réjouis de leurs plats ;
On entend un grelot résonner dans la nuit.
![](https://i.imgur.com/yCLBXt2t.png)
- Adam Y. : chandelle
- Thomas S. : bouteille de champagne
- Sylvain B. : bol de chocolats
- Alexis M. : tasse chocolat chaud
- Mathis L. : cadeau de Noël emballé
- Justine C. : Joyeux Noël en texte en pixel art
- Julien R. : un calisson
- Ilana R. : couronne de Noël
- Coline R. : truffe en chocolat
- Antoine R. : bouteille de vin
- Anna C. : sucre d'orge
- Anthony F. : cadeau de noel jaune et rouge
- Neila S. : chaussette de noel
- Florian G. : un petit Papa Noël
- Robin C. : houx de Noël
- Samuel V. : un bonhomme de neige
- Merlin C. : un sapin
- Ilyas R. : une bûche de Noël
- Raphael C. : bonhomme en pain d'épice
- Raphaël M. : une horloge digitale qui affiche 20h22 façon Casio F91W mais affiché au mur (mais quel coquin, le clin d'œil qui ne passera sûrement pas inaperçu
)
- Sybil L. : bougie
Ayons également une pensée pour 10 autres élèves qui ont eux aussi produit des éléments dont l'intégration au script n'a pas été possible :
- Matheo L. : étoile
- Aurélien B. : étoile
- Sarah V. : flocon de neige
- Rayan C. : bonhomme de neige
- Romeo B. : bonnet de Noël
- David G. : oreillettes
- Bilal L. : guirlandes
- constance A. : un saumon sous forme de poisson
- Romain L. : chandelier
- Noah M. : bougies
![:D :D](./images/smilies/grin.png)
- Code: Tout sélectionner
# Participation au jeu concours de Noël 2022 de Casio
from casioplot import *
from random import randint
"""
Catégorie Classe : Elèves du Lycée Louis Pasteur d'Avignon
Professeurs : Vincent ROBERT, Raphaël CLEMENTE
Elèves : 31 élèves citées dans ce document, sous la forme Prénom N.
https://www.casio-education.fr/actualites/jeu-concours-casio-de-noel/
"""
# Des objets préparés et codés en pixel art
"""
Nous avons découvert lors de l'atelier
CRÉER UN JEU VIDÉO AVEC LES CALCULATRICES GRAPHIQUES de novembre 2022
> https://www.casio-education.fr/contenus/creer-un-jeu-video-avec-les-calculatrices-graphiques/
une technique de codage basé sur du pixel Art. Nous remercions à ce propos les animateurs de cet atelier,
Xavier Andreani (tiplanet.org) et Sebastien Michelland (planet-casio.com) tant pour la qualité de la présentation
que pour l'aide inestimable que cette formation a été pour nous.
Une "orange" codée avec cette technique fut envoyé aux élèves.
vr_orange_color = {
" " : (255, 255, 255), # transparence
"#" : (241, 149, 11), # ecorce #f6b26
"." : (247, 178, 107), # anti crénelage #f1950b
"A" : (235, 156, 36), # dégradé 1 #eb9c24
"B" : (237, 176, 41), #dégradé 2 #edb029
"C" : (241, 194, 50), # centre #f1c232
}
vr_orange_image = [
" .##. ",
" ##AA## ",
".#ABBA#.",
"#ABCCBA#",
"#ABCCBA#",
".#ABBA#.",
" ##AA## ",
" .##. ",]
Les volontaires eurent donc la mission de choisir un objet, de le coder.
Chaque élève qui a participé a rendu une liste et un dictionnaire python.
Ces deux objets permettent de générer une image.
Un groupe de pilotage de 3 élèves et d'un professeur realisa la composition finale :
- selectionner les images qui seront dans la composition,
- Placer les objets,
- Ecrire une histoire,
- Ajouter des élèments pour améliorer la cohérence de l'ensemble.
Groupe de pilotage : Ilana R., Adam Y, Ilyas R., Vincent ROBERT
"""
# L'histoire par Adam Y.
"""
En ce jour de Noël est dressée la grand table ;
Friandise et champagne accompagne à l’oubli
Et la bûche enivrant dont le goût est affable
Resplendit sous l’éclat rutilant des bougies.
Tout convive a pris place et festoie du repas ;
Les présents emballés sont légués à autrui.
Enjoués, ces gens rient, réjouis de leurs plats ;
On entend un grelot résonner dans la nuit.
"""
# Les images codées par les élèves de ligne 64 à la ligne 1010.
"""==================================
Une chandelle par Adam Y.
=================================="""
ay_chandelle_color = {
" " : (255, 255, 255), # transparence
"#" : (195, 195, 195), # contour gris
"." : (230, 230, 230), # anti-crénelage gris
"A" : (254, 254, 254), # cire blanche
"B" : (210, 200, 40), # contour jaune flamme
"C" : (200, 110, 40), # intérieur orange flamme
"D" : (200, 20, 40), # centre rouge flamme
"-" : (250,240,80), # anti-crénelage jaune
}
ay_chandelle_image1 = [
" -B- ",
" -B- ",
" -BBB ",
" BCCB ",
" CDDC ",
".##DD#. ",
"#..##.#.",
"#.A##A.#",
".#.AAA.#",
" ######.",
" #AAAA# ",
" #AAA.# ",
".#.AA.# ",
"#.....#.",
"#......#",
".######.",]
ay_chandelle_image2 = [
" ",
" -BB- ",
" BBB- ",
" -BBB- ",
" -BBCBB ",
" BCCCCB ",
" CCDDCC ",
" #CDDDDC#",
" .##DDDD##. ",
"##..####.## ",
"##.A####AA##",
" ##.AAAAA.##",
" .##.AAA.## ",
" ########. ",
" ######## ",
" ##AAAA## ",
" .##AAAA## ",
" ##.AAA.##. ",
"##...AA..## ",
"##........# ",
" ##......## ",
" .########. ",
" ###### ",
" ",]
"""========================================
Une bouteille de champagne par Thomas S.
========================================"""
ts_bouteille_champagne_color = {
" " : (255, 255, 255), # transparence
"#" : (0, 0, 0), # noir
"." : (255, 180, 0), # doré
"F" : (2, 51, 7), # vert foncé
"D" : (2, 80, 7), # dégradé vert
"V" : (5, 110, 15), # vert
"A" : (100, 152, 105), # dégradé vert clair pour étiquette
"Z" : (74, 105, 77), # dégradé vert foncé pour étiquette
"E" : (195, 195, 195), # Gris/Blanc étiquette
"J" : (255, 255, 0), # Jaune
"K" : (239, 206, 37), # Doré clair
"L" : (255, 190, 0), # Nuance de doré 1
"M" : (253, 190, 40), # Nuance de doré 2
"H" : (221, 212, 0) # Nuance du jaune (pour écran)
}
ts_bouteille_champagne_image = [
" ######## ",
" ########## ",
" ###KKKKKK### ",
" ##KKKKKKKK## ",
" ###KKLLLLKK### ",
" ##KKLHHHHLKK## ",
" ##KKLHHHHLKK## ",
" ##KKLLLLLLKK## ",
" ##KKLKKKKLKK## ",
" ##KKLKLKMLKK## ",
" ##KKLLLLKLKK## ",
" ##KKLKLKKLKK## ",
" ##KKKLLLLKKK## ",
" ###KKKKKKKK### ",
" ##..KKKK..## ",
" ###..KK..### ",
" ##.KKKK.## ",
" ##......## ",
" ##......## ",
" ##..J..J## ",
" ##.J.J.J## ",
" ##.J..JJ## ",
" ##..J..J## ",
" ##......## ",
" ##..JJJJ## ",
" ##...J..## ",
" ##.JJJ..## ",
" ##......## ",
" ##.JJJJJ## ",
" ##.J.J.J## ",
" ##.J.J.J## ",
" ##.JJJJJ## ",
" ##......## ",
" ##.....J## ",
" ##.JJJJJ## ",
" ##..J..J## ",
" ##......## ",
" ##......## ",
" ###....### ",
" ####..#### ",
" ##.####.## ",
" ###.##.### ",
" ##F##..##F## ",
" ##FF####FF## ",
" ##FFVF##FVFF## ",
" ##FVVVFFVVVF## ",
" ##FFVVVVVVVVFF## ",
" ##FVVVVVVVVVVF## ",
" ##FFVVVVVVVVVVFF## ",
" ##FVVVVVVVVVVVVF## ",
" ##FVVVVVVVVVVVVF## ",
"##FFVVVVVVVVVVVVFF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##FVVVVVVVVVVVVVVF##",
"##ZAVVVVVVVVVVVVAZ##",
"##ZAAAVVVVVVVAAAAZ##",
"##ZEEAAAAAAAAAEEEZ##",
"##ZEEEEEEEEEEEEEEZ##",
"##ZEEE#EEEEEEEEEEZ##",
"##ZEE#######EE#EEZ##",
"##ZEEEEEE##E###EEZ##",
"##ZEEEEEEEEEEEEEEZ##",
"##ZEEEEEEEEEEEEEEZ##",
"##ZEEEEEEEEE#EEEEZ##",
"##ZEE##########EEZ##",
"##ZEEEE##EEEEEEEEZ##",
"##ZEEEEEEEEEEEEEEZ##",
"##ZAAEEEEEEEEEEAAZ##",
"##FVAAAEEEEEAAAAVF##",
"##FDVVAAAAAAAVVVDF##",
"##FDVVVVVVVVVVVVDF##",
"##FDVVVVVVVVVVVVDF##",
"##FDVVVVVVVVVVVVDF##",
"##FDVVVVVVVVVVVVDF##",
"##FDVVVVVVVVVVVVDF##",
"##FDVVVVVVVVVVVVDF##",
"##FDVVVVVVVVVVVVDF##",
"##FDVVVVVVVVVVVVDF##",
"##FDDVVVVVVVVVVDDF##",
"##FDDVVVVVVVVVVDDF##",
"##FFDVVVVVVVVVVDFF##",
"##FFDDVVVVVVVVDDFF##",
"##FFFDDDVVVVDDDFFF##",
"###FFFFDDDDDDFFFF###",
" ###FFFFFFFFFFFF### ",
" ################ ",
" ############ ",
]
"""========================================
Un bol de chocolats par Sylvain B.
========================================"""
sb_bol_de_chocolat_color = {
" " : (255, 255, 255),
"#" : (225, 225, 225),
"." : (233, 233, 233),
"/" : (215, 215, 215),
"A" : (102, 64, 43),
"B" : (111, 75, 55),
"C" : (141, 112, 96),
}
# L"image codée dans un tableau, ce que vous devrez modifier, y compris le nom.
sb_bol_de_chocolat_image = [
" BCBBBCC CBBB C ",
".#AABBAABAAAAAC/#.",
"..#//AABBABBB//#..",
" .##//////////##. ",
" ..##////////##.. ",
" ..##//////##.. ",
" ..###//###.. ",
" ...####... BB ",
" ...... CCAB",]
"""==========================================
Une tasse de chocolat chaud par Alexis M.
=========================================="""
am_chocolatchaud_color = {
" " : (255, 255, 255), # transparence
"#" : (25, 10, 190), # rouge foncé #9a0200
"." : (71, 38, 242), # anti crénelage #db5856
"A" : (100, 10, 242), # rouge pale #ef4026
"B" : (150, 81, 18), #chocolat #7f5112
"C" : (216, 220, 214), # fumée grise #d8dcd6
"O" : (240, 240, 240), # fumée blanche #d8dcd6
}
am_chocolatchaud_image = [
" ",
" O ",
" OO ",
" OOO ",
" OOOOOC ",
" OOOOOCC ",
" OOOOCCC ",
" OOOOCC ",
" OOOCCC ",
" OOOCC O ",
" OOCC OOOC ",
" OCC OOCC ",
" C OCC ",
" C ",
" ",
" .AAAAAAAAAAA. ",
" ABBBBBBBBBBBA ",
" AAABBBBBBBBBA# A#A ",
" AAAAAAA######## ##",
" AAAAAAAAAA##### #",
" AAAAAAAAAA##### # ",
" AAAAAAAAAAA### # ",
" .AAAAAAAAAA### # ",
" AAAAAAAAA##### ",
" AAAAAAAAA### ",
" .AAAAAA#### ",
" AAA####### ",
" .AAAAA### ",
" ",]
"""=======================
Un cadeau par Mathis L.
======================="""
ml_cadeau_color = {
" " : (255, 255, 255), # transparence
"B" : (21, 30, 129), # bleu face #151ee5
"A" : (21, 22, 190), # bleu côté #1516be
"C" : (51, 71, 222), # haut #3347de
"D" : (228, 229, 25), # ruban #e4e519
"E" : (201, 204, 25), # noeud #c9cc19
}
ml_cadeau_image = [
" EE EE ",
" E E E ",
" E E E ",
" E E E ",
"BBCCCCCCEDEDECCC ",
"BBBBDDDDDEEEDDDDDD ",
"BBBDBBCCCCCDDDCCCCCC",
"BBBDBBBAAAAADDDAAAAA",
"BBBDBBBAAAAADDDAAAAA",
"BBBDBBBAAAAADDDAAAAA",
"BBBDBBBAAAAADDDAAAAA",
"BBBDBBBAAAAADDDAAAAA",
"BBBDBBBAAAAADDDAAAAA",
"BBBDBBBAAAAADDDAAAAA",
"BBBDBBBAAAAADDDAAAAA",
"BBBDBBBAAAAADDDAAAAA",
" BBDBBBAAAAADDDAAAAA",
" DBBBAAAAADDDAAAAA",
" BBAAAAADDDAAAAA",]
"""=======================
Joyeux Noel par Justine C.
======================="""
jc_joyeuxnoel_image = [
" RRRR RR R R RB ",
" RR R RRRRR RR R RB RB ",
" RR RB RB R R RR RB R R RR RB R R R RB RB RRRRR RB ",
" RB RB RRRR RB RB RR RB R RR RB RB R RB R RB RRRR RR RB RB ",
" RB RB RR R BB RB RB RB R BB RB R RB R RRB RR R RB RB RB ",
" RB RB RB RR RB RB R RB RB RB RB RB R RR R RBB RB RR RB RB RB ",
" RR RB RB RB RB RRB RRR RB RB RB RRBR RB R RB RB RB R RB RB RB ",
" R RB RB RB RB RRB RBR R RB RB RB RB R RB RB RB RRR RB RB ",
" RB RB RB RB RRB RB RRRRR RB RRB RRB RB R RB RB RB RBR RR RB ",
" RB RB RB RB R RB RB RB RRB R RB RB R RB RB RB RB RRRRR RB ",
" RB RB RB RB R RB RB RBB RRB R RB RB R RB RB RB RB RB ",
" RB RB RB RB R RB RB R RB R RB R RB RRRB RB RRB RB RB RB ",
" RR RRB BB R B R RB RB R RBB R RBB R RB RRR RRB RB R BB R RB ",
"RB RB RR RB RB R RR BB R RBBB RB R R R RRB RB RB RB RB R RB R ",
"RB RRB RRRR RR RRRR RRRR RR RB RR RB RB RRRR RB R RRB R ",
"R RB RR RB R RBR RRB RB RRRR RRB R ",
"R R RR RB R RR RB RB RRR ",
" R RB R RB RB R ",
" R RR R RB RB RB R ",
" RRR RRRB RB RR ",]
jc_joyeuxnoel_color = {
" " : (255, 255, 255), #transparence
"R" : (230, 20, 40), #rouge
"B" : (170, 40, 20), #bordeau
}
"""=======================
Un calisson par Julien R.
======================="""
jr_calisson_color = {
" " : (255, 255, 255), # transparence
"W" : (254,254,211), # blanc #fefefe
"C" : (247, 178, 107), # crème de calisson #f7b232
}
jr_calisson_image = [
" WWWW ",
" WWWWWWWW ",
" WWWWWWWWWW ",
" CWWWWWWWWC ",
" CCWWWWCC ",
" CCCC ",]
"""=================================
Une couronne de Noel par Ilana R.
================================="""
ir_couronne_color = {
" " : (255, 255, 255), # transparence
"V" : (9, 88, 49), # vert foncé
"v" : (50, 180, 80), # vert clair
"R" : (255, 35, 30), # rouge foncé
"r" : (240, 90, 80), # rouge clair
"O" : (240, 150, 80), # orange
"B" : (70, 110, 240), # bleu foncé
"b" : (70, 145, 240), # bleu clair
"C" : (125, 210, 245) # bleu tres clair
}
ir_courone_image = [
" RRRR RRRR ",
" RrrrOR RrOOOR ",
" RrrrrOR RrrrrOR ",
" RrrrrrORVVRrrrrrOR ",
" VRrrrrrrrRRrrrrrrrRV ",
" VVvvRrrrrrROORrrrrrRvvVV ",
" VvvvvvRrrrRrrOORrrrRvvvvvV ",
" VvvvvvvvRRRRrrrORRRRvvvvvvvV ",
" VvvvvvvvvRrrORrrRrrrRvvvvvvvvV ",
" VvvvvvvvvRrrrrORRrrrrrRvvvvvvvvV ",
" VvvvvvvvvRrrrrrrRRrrrrrORvvvvvvvvV ",
" BBBBvvvvvRrrrrrrrRRrrrrrrORvvvvvvvvV ",
" BbbCCBvvvRRRRRrrrR RrrrRRRRRvvvvvvvV ",
" BbbbbbCBvvV RrrR RrrR VvvvvvvvvV ",
"BbbbbbbbCBV RrR RrR VvvvvvvvV ",
"BbbbbbbbCBV RR RR VvvvvvvvvV ",
"BbbbbbbbbB VvvBBBBvV ",
"BbbbbbbbbB VvBbbCCBV ",
" BbbbbbbB BbbbbbCB ",
" VBbbbbBV BbbbbbbbCB",
" VvBBBBvV BbbbbbbbCB",
" VvvvvvvV BbbbbbbbbB",
" VvvvvvvV BbbbbbbbbB",
" VvvRRRRV BbbbbbbB ",
" VvRrrOOR VBbbbbBV ",
" VRrrrrrOR VvBBBBvV ",
" RrrrrrrrOR VvvvvvvV ",
" RrrrrrrrOR VvvvvvvV ",
" RrrrrrrrrR VvvvvvvvV ",
" RrrrrrrrrR RRRRvvvvvV ",
" VRrrrrrrR RrrOORvvvvV ",
" VRrrrrRvV RrrrrrORvvV ",
" VvRRRRvvvV RrrrrrrrORvV ",
" VvvvvvvvBBBB RrrrrrrrORV ",
" VvvvvvvBbbCCB VVRrrrrrrrrRV ",
" VvvvvBbbbbbCBVVVVVVVVVvvRrrrrrrrrRV ",
" VvvBbbbbbbbCBvvvvvvvvvvvRrrrrrrR ",
" VvBbbbbbbbCBvvvvvvvvvvvvRrrrrR ",
" VBbbbbbbbbBvvvvvvvvvvvvvRRRR ",
" BbbbbbbbbBvvvvvvvvvvvvvvvV ",
" BbbbbbbBvvvvvvvvvvvvvvVV ",
" BbbbbBvvvvvvvvvvvvvVV ",
" BBBBVVVVVVVVVVVVVV ", ]
"""========================
Une truffe par Coline R.
========================"""
cr_truffeenchocolat_color = {
" " : (255, 255, 255), # transparence
"#" : (139,69,19),
"." : ((160,82,45)),
"A" : (170,105,30), # dégradé 1
"B" : (205,133,63), #dégradé 2
"C" : ((224,164,96)), # centre
}
cr_truffeenchocolat_image = [
" .##. ",
" ##AA## ",
".#ABBA#.",
"#ABCCBA#",
"#ABCCBA#",
".#ABBA#.",
" ##AA## ",
" .##. ",]
"""===================================
Une bouteille de vin par Antoine R.
==================================="""
ar_vin_color = {
"T" : (255,255,255),
"F" : (41,5,19),
"V" : (84,11,40),
"C" : (255,171,221),
"J" : (243,255,130),
"O" : (232,194,67),
"M" : (158,93,36),
"N" : (0,0,0),
}
ar_vin_image = [
"TTTTTTTNNNNNNTTTTTTT",
"TTTTTTTNMJJJNTTTTTTT",
"TTTTTTTNJMMJNTTTTTTT",
"TTTTTTTNJJJMNTTTTTTT",
"TTTTTTTNMJJJNTTTTTTT",
"TTTTTTTNJMMJNTTTTTTT",
"TTTTTTTNJJJMNTTTTTTT",
"TTTTTTTNMJJJNTTTTTTT",
"TTTTTTTNJMMJNTTTTTTT",
"TTTTTTTNJJJMNTTTTTTT",
"TTTTTTTNJJJJNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTTNVVVVNTTTTTTT",
"TTTTTTNVVVVVVNTTTTTT",
"TTTTTNVVVVVVVVNTTTTT",
"TTTTTNVVVVVVVVNTTTTT",
"TTTTNVVVVVVVVVVNTTTT",
"TTTNVVVVVVVVVVVVNTTT",
"TTTNVVVVVVVCVVVVNTTT",
"TTTNVVVVVVVCVVVVNTTT",
"TTTNVVVVVVVCCVVVNTTT",
"TTNVVVVVVVVCCCVVVNTT",
"TTNVVVVVVVVVCCCVVNTT",
"TNVVVVVVVVVVCCCVVVNT",
"TNVVVVVVVVVVCCCCVVNT",
"TNVVVVVVVVVVVCCCVVNT",
"TNVVVVVVVVVVVCCCVVNT",
"NVVVVVVVVVVVVCCCVVVN",
"NVVVVVVVVVVVVVCCVVVN",
"NVVVVVVVVVVVVVVCVVVN",
"NVVVVVVVVVVVVVVCVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NJJJJJJJJJJJJJJJJJJN",
"NJJJJJMMMMMMMMMMMMMN",
"NJJJJJJJJJJJJJJJJJJN",
"NJJMJJJJJJJJJMJJJMJN",
"NJJMJJJJJJJJJMJMJMJN",
"NJMMJJJJMJJJJMJMJMJN",
"NJJMJJJJMMJJJJMJMJJN",
"NMMMJJJJMMMJJJJJJJJN",
"NJJMJJJJMMJJMMMMMJJN",
"NOMMJJJJMJJMJJJJMMMN",
"NOJMJJJJJJJMJMJJJJJN",
"NOJMJJJJJJJJMJJJJJJN",
"NOOJJJJJJJJJJJJJJJJN",
"NOOOJJMMMMMMMMMMMMMN",
"NOOOOOOOOJJJJJJJJJJN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NVVVVVVVVVVVVVVVVVVN",
"NFVVVVVVVVVVVVVVVVVN",
"NFVVVVVVVVVVVVVVVVVN",
"NFVVVVVVVVVVVVVVVVVN",
"NFVVVVVVVVVVVVVVVVVN",
"NFFVVVVVVVVVVVVVVVVN",
"NFFFVVVVVVVVVVVVVVVN",
"NFFFVVVVVVVVVVVVVVVN",
"NFFFFVVVVVVVVVVVVVVN",
"NFFFFFVVVVVVVVVVVVVN",
"NFFFFFVVVVVVVVVVVVVN",
"NFFFFFFFFFVVVVVVVVVN",
"NFFFFFFFFFFFVVVVVFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"NFFFFFFFFFFFFFFFFFFN",
"TNNNNNNNNNNNNNNNNNNT",
]
"""===========================
Un sucre d'orge par Anna C.
==========================="""
ac_orge_color={
"A":(230,190,190),
".":(255,255,255),
"B":(230,20,20),}
ac_orge_image=[
".....BBAAA......",
"....BBBBAAA.....",
"...AABBBBAAA....",
"...AAA...BAA....",
"...BAA...BBA....",
"...BBA...BBB....",
"...BBB...BBB....",
"....BB...ABB....",
".........AAB....",
".........AAA....",
".........BAA....",
".........BBA....",
".........BBB....",
".........BBB....",
".........ABB....",
".........AAB....",]
"""=======================
Un cadeau par Antony F.
======================="""
afc_cadeau_color = {
" " : (255, 255, 255), # transparence
"R" : (250, 0, 0), # rouge 1 ##fa0000
"T" : (200, 0, 0), # rouge 2 #c80000
"Y" : (160, 0, 0), # rouge 3 #a00000
"U" : (125, 0, 0), # rouge 4 #7d0000
"I" : (105, 0, 0), # rouge 5 #690000
"N" : (2, 2, 2), # noir
"F" : (240, 200, 0), # jaune 1 #f0c800
"G" : (220, 175, 0), # jaune 2 #dcaf00
"H" : (200, 160, 0), # jaune 3 #c8a000
"J" : (180, 145, 0), # jaune 4 #b49100
}
# L"image codée dans un tableau, ce que vous devrez modifier, y compris le nom.
afc_cadeau_image1 = [
" NNN NNNN ",
" NJHGNNNGFN ",
" NNJHGNHFNN ",
"NNNNNNNNNNNN",
"NIUYNJHGNTRN",
"NIUYNHGFNTRN",
"NNNNNNNNNNNN",
" NYTNHGFNRN ",
" NYTNHGFNRN ",
" NYTNHGFNRN ",
" NYTNHGFNRN ",
" NNNNNNNNNN ",]
afc_cadeau_image2 = [
" NNNN NNNN ",
" NNGFNN NNGFNN ",
" NJHGFNNNNHGGFN ",
" NNJHGFNNJJHHNN ",
" NNNNNNNNNNNN ",
"NNNNNNNNNNNNNNNNNNNN",
"NIUUYYNJHGGFFNYTTRRN",
"NIUUYYNJHHGFFNYTTRRN",
"NIUUYYNJJHGGFNYTTRRN",
"NIUUYYNJJHHGFNYTTRRN",
"NNNNNNNNNNNNNNNNNNNN",
" NIUYYNJJHHGFNTTRRN ",
" NIUYYNJJHHGFNTTRRN ",
" NIUYYNJJHHGGNTTRRN ",
" NIUYYNJJHHGGNTTRRN ",
" NIUYYNJJHHGGNTTRRN ",
" NIUYYNJJHHGGNTTRRN ",
" NIUYYNJJHHGGNTTRRN ",
" NIUYYNJJHHGGNTTRRN ",
" NNNNNNNNNNNNNNNNNN ",]
"""=========================
Une chausette par Neila S.
========================="""
ns_chaussette_color = {
" " : (255, 255, 255), # transparence
"C" : (240, 0, 32), #rouge
"." : (253, 253, 150), # jaune
"A" : (0, 0, 0), # noir
"V" : (130, 196, 108), # vert
}
ns_chaussette_image = [
" A ",
" AA.A ",
" AA...A ",
" AA......A ",
" AAAA........A ",
"A...........A ",
" A.......AAAA ",
" A...AAAVVVA ",
" AAAAVVVCVVA ",
" ACVVVVCCCA ",
" AVVCCCCCA ",
" ACCCCCCA ",
" ACCCCVVA ",
" ACCVVVA ",
" AVVVVA ",
" AVVCCCA ",
" ACCCCCA ",
" ACCCCCCA",
" ACCCCCCA",
" ACCCCCVA ",
"AAA AACVVVVVVA ",
"ACCAAVCCVVVVA ",
"ACCCVVCCCCCA ",
"ACCCVVCCCCAA ",
" ACCVVCCCCA ",
" ACCVVCCCA ",
" ACVVCCA ",
" ACVAA ",
" AA ",
]
"""===========================
Un pere noel par Florian G.
==========================="""
fg_papanoel_image = [
" CCC ",
" CCCAAAC ",
" CAAAAACA#",
" CAAAAAC ##",
" CAAAAAC ",
" H#######H ",
" HBBBBBBBH ",
" #BDBDB# ",
" ##BBB## ",
" ##G## ",
"AAAA###AAAA ",
"AACAA#AACAA ",
"##CAEEEAC## ",
"DDCADDDACDD ",
" DACDDDCAD ",
" CAACAAC ",
" DEFDEFD ",
" DDDDDDD ",]
fg_papanoel_color = {
" " : (255, 255, 255), #transparence
"#" : (230, 230, 230), #blanc
"A" : (237, 28, 35), #rouge
"B" : (225, 198, 153), #beige
"C" : (153, 0, 48), #2eme rouge
"D" : (0, 0, 0), #noir
"E" : (70, 70, 70), #gris fonce
"F" : (180, 180, 180), #gris clair
"G" : (253, 110, 158), #rose
"H" : (255, 195, 14), #jaune
}
"""====================
Un houx par Robin C.
===================="""
rc_houx_color = {
" " : (255, 255, 255),
"R" : (248, 18, 18),
"G" : (0, 59, 5),
"A" : (2, 153, 5),
}
rc_houx_image = [
" GGG ",
" GG GGAAAG ",
" GAAG GAAAAAAG",
"GAAAAG GAAAGAAG",
"GAGGAAG GAAAGGAAG",
"GAAGAAAG GAAAGAAAG ",
" GAGGAAAG GAGGAAAAG ",
" GAAGGAAG RR GAAGAAAAG ",
" GAAAGAAAGRR RAAGAAAAAG ",
" GAAAGAAARRRRAGAAAGGG ",
" GGAAARR RRAAAAGGG ",
" GARR R RRAAGG ",
" GRRRRRR RG ",
" RR RRRR ",
" RR ",]
"""=============================
Un bonhomme de neige Samuel V.
============================="""
sv_bonhomme_color = {
" " : (255, 255, 255), # transparence
"#" : (231, 4, 4), # rouge
"." : (252, 229, 205), # couleur neige
"A" : (244, 102, 27), #carotte
"B" : (91, 15, 0), #bras
"C" : (0, 0, 0), # pomme de pin
"D" : (255, 153, 0), # echarpe orange
"E" : (255, 255, 0), # echarpe jaune
"F" : (221, 126, 107), # sourrire
"H" : (120, 63, 4), # bras deux
}
sv_bonhomme_image = [
" # ",
" ### ",
" ##### ",
" ..... ",
" ...A... ",
" ...A... ",
" .F...F. ",
" .FFF. ",
" ... ",
" B DEDED B",
" BH.E.....HB",
" ..D.C.... ",
" ......... ",
" .....C.....",
" ...........",
" .....C.....",
" ......... ",
" ...C... ",
" ..... ",
" ... ",]
"""======================
Un sapin par Merlin C.
======================"""
mc_sapin_color = {
" " : (255, 255, 255), # transparence
"#" : (85, 62, 37), # ecorce #553e25
"." : (60, 222, 138), # anti crénelage #f1950b
"A" : (19, 189, 101), # dégradé 1 #13bd65
"B" : (12, 153, 80), #dégradé 2 #edb029
"C" : (5, 104, 53), # centre #056835
}
mc_sapin_image = [
" .. ",
" .AA. ",
" .ABBA. ",
" .. ",
" .AA. ",
" .ABBA. ",
" .ABCCBA. ",
" .AA. ",
" .ABBA. ",
" .ABCCBA. ",
" .ABCCCCBA. ",
" .ABBA. ",
" .ABCCBA. ",
" .ABCCCCBA. ",
".ABCCCCCCBA.",
" ## ",
" ## ",
" ## ", ]
"""=====================
Une buche par Ilyas.R
====================="""
ir_buche_image = ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcdefghggijjaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaklemnhhhhnininjaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoppqrsttuvwiiinxyzczxAAaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamBCxDDEFGBHoHIJpAKLbMzNfzKNxxwBaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBaaaOPPhnggBAQRSTUHpQpVBWvWWlKlKXXzYllZvvaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagACw0inni1yyDNvJIFFttSkSS222SB3XXXLLLMMbHpBE4aaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagfQo3wxxyxxwXLMMLLMQJUIIIIISCEpUv5LLL3355eE267Vaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaighgwprWxi888xHolDwDDD9<MddQQou2uCvHHIkEvWvEQorSItS4Vaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiighhghnvreDxx111xbzxywDDD999LMMMebpHHHpvEt>GJJHHHWvp2tF247aaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaax3pZ2ku7mAi88888i8iBopAxxx1nxAufyDyDD99<<<LLLMMcMdc5vWQoEe55ceeWWc5pSF44aaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafxW3GsjwxBsplx8i111nZokBAl3vvbbAmkwD<zD<<zXLL<LLcXMLMceHUJbc3LcLccecc5eEG24aaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagnzAeHstv5cWZmNwwwwnfEJJoH55LKffwNf33z<z<<<X<<<<<<XL3vEQuUCv53YMcceccce5eeCF77aaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxffxwwzzqBZAb6GIsJCBvQJpB4Sb53zAffwDDyDzDfHL<<<<zLzXXL3cepJIsqQv55MY3c535555e555vFV4aaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBAAAfwxxxDXpWmxpBtF642GCWBB2SCc3ffzzNzfzzzDzzpQlX<YXYlcvHUUsuobcYKKKzff35c5e33c5555vS6vaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaamiMQGBk2TF226ZsEBBllfNXM5eebpHsFFFtsIJBApuJC5LYXKXzXzzKNYKXXpUEvvvQUJuuGrecllYzXYzlzff355533e5c55WvSVE7aa', 'aaaaaaaaaaNAf3A4ABWZmaaaagnxjZWv6VVVV46EpW3ZB3pQQLLMMceHuSSSI4mZQrSCdMMLYXY3lvHQJJrppoJU>FtUvlYlEUWccfcMMLNKKzXllcZW555WWWB4EvV4aa', 'aaaaaaarAnjgmZ7BBBEJUGGJJqUUC226SIISIF2226EVV47BZBZZZZZBBBZAZAmmfAAfmfmwfAAZHopB5BEQooHppEvWYKzXWG6W3YNAzzNNfwAB33WW5llZZWE6vp4Vaa', 'aaaaaaafwzwfmwmngjwNfwwfwfNKXcevbHQoJJIIIFFFFSIIuuuJurJJISSIUUUUUUUUSIJSS2kEW3cYYKl3ecc3YXYYKYYl3rJB5l3AA3YlYwAW3lBl3333B6I7Bv4Vaa', 'aaaaaawLDXwXXfjnjx111111yyDyyDDzDXXXc5dpCUI2k2Hov55555eeplfVQECHCE4V4SsJHe3333YYXLMelK35XLLXl33llpGWW5l33AlAfAWB3333WBBW2t2VZW76aa', 'aaaaaw<DDcKKlNAmABAwwxyyyywDyDDXXYc5pQopv5355eEQUrHbbeeeffvHpECouIts2pv3YMMLcYcXKKc53M5vLY33l533lWUkB3333lZwAZBZAAllWW662tS4BW4Vaa', 'aaaayy<LeU6BAfmmAjnjAfwyyyxz5oppHve3l33XXl333YM5UkCHHQfjACIII>>tFIvvcMe3YXY5e3l3cl535Yl5553333ZAY3CIWWWBV2SJsFT6VV6V6666V2IG6774aa', 'aaaayMKHt6ZmwmmjAAAAEvcfDDfzzzzfXXX<zYXLXXLXKXL3CGGJWnxvkssskHppIoWc53555355355l5353l5l55BWl3KllX3BIsuk6666666226662rC477ZB6I64Vaa', 'aaaywbutTfh000imfAlA72EYzfXzzXXzXXXXYLXXYXXXLM3BHsEniWQQHvQHp5e5JJ5bWW5555lc5e3535555l333ZZlAX35AAWVV6H6EV6I2ABB466Hvv5vvBB4V2V4aa', 'aaaywoFtm0PPPPPPjAfmApVvLzXXXLKlXXXYLLXY33BBWECJrmifpveeH5eQHee5CUeeWe3llAl3c535ee3555333Yl33AZB4EEV62rWvWW2SZZBBAmABwBWBvW7746Vaa', 'aaa1wrtA00000h0PPn3AAWVEe3cY3c3cLLYYY35borsItrC4nnvpeeeLecWHVp5WCGE5l3lKKKK33lY5cYl3l5llYlYZECC6222HvBZ3ZZW4IBBB3vZBZAWBBBv772S2aa', 'aawDQ26hPP000PhhPPnjBA44pvc3LLc53vCSI>GJVWWWvBjhfEW5e5edepWeB555VtClYZwZ3l3LYYXlBB3535BWvV66kCk2S2WZZZZWWvv4t7BZBBBBB7vvEWBW7V26aa', 'aiDzpFjPPPPP00ihhPPjmwAVWp5535v2TtIuEW5lleeed5AWpc3eee3AA5f3AfN3CFIb33l533lBBZBZW44EJrkrruurHv46t7BBWBv5WWZ7tHBBWZWWWvvvWEvE4626aa', 'azydU2hPPP0ggg0iihPPmAfW4VpEoItICv55ee5czLLLKMevvvbe33l3lAAflLAWoFFkvvvWBvBvvECruS22226ukpWWWvv7IBBBBvvWvWpBTHBWvWvWvvWpEpCCVS62aa', 'ayDeGBPPPPP000iginhPiAfB6VktTTIVceeeee3cLXLMLe5Wpp55WWW355l3lvQkk2IIttISSuuurrkkrk62267HWBWWZlZZIBlvvWvvvZB7FVWWWvvpEEEEEEHCu262aa', 'axDeImOOPPP00ihiiji0PjfAV46TSTspbbvvveecMLXLXz555vvWvvW5ZBAZv22kkHE6rr2rrkr26vWpppvWWV4W4vvWvHE4IVpvppb5vpE6UWW5vWvbECCCCr2I2626aa', 'aDy3UiPOPPPhh0gingfgPAwZ74V2SuJvvEpbev3lLlLlXYAYBWEpvEWvpEkuSSrHppvpvvVHEstVWZZvpvBZWWWWWpWvWvvVF44vvCW5HWvIEvvvpHCCH6rrSIIS6SS6aa', 'axDeShOOPOPPPnggixgjhAfwZ6V22uJHppbvvdMzXLLZlzZpUIFtIIISSSSST2vWZWWAWvWvWEt6BAZvvvBBWlB35WWBpWWWs662SI6vWCISCQor6SJUsIFII22SSSS2aa', 'afDdr0OOOPPhh0nixgnfgiAwf6V62SI6EEvEppecY3lWl32SSS22646662TS6WlAflAfAlAdWBSCWA3BvBBfl35W53WBBWW7STI2rEusGIC6EpESIFIJ2SSTTS22uSSaaa', 'ayDeCPOOPPP00ghwixxnx0BAmVVV2SFFS2ISssSurHWvCrSTCBvWWWppVEpv5Zlfl3lfAll5E4SrW5WWWvWWWW5Wvvvv5WvutIEpQH4StI2JJIIsCHQoSISTS6uustaaaa', 'ayDbVPOOOPPPhhigmxgi3gmww44422SrJrrE66rS2TSSSTSEllA335HpBvbcWe33lKXKAlBBW4SEZ5vW55WWWpWWWWHHpHStI2CQQQCIFIrSukHHkkuSsssIIu2uuIaaaa', 'ayDo6POOPPP0hhhxxijwmngwf4VVS24EEvEvVVVV444EuFHZYXlN3vEVvWvvWWH5fflA3WvpeVT4WBvp5vppvbebbvHE2I>rkkkpHE2tIuruSJuJIISIIISSSrSSTaaaaa', 'a1zJrPOOPP0g0hgiimAwnfhfxZ6VrEvEEEHpHpppp5vpE>WAXA55AZW4EpvvWvEpvvZWvHEZWVFE4vvppbEHHpEErSSt>srkppoJJUSIoHQH6SSSTItItIuSIttaaaaaaa', 'aDyeu0POPPP0hhgixljni3hnfZ6St2vECEE4WppvpvvpCFE333WZlvpHvppppvpv5vvvZWvp42F2V762WWV2STFTFIS2CCkruoooC2ISoQqUIIsSSSIFFFTTTtaaaaaaaa', 'ayDXUgPPPP00hggwxfnxnWgxxAVrFSV4EEE44v4VVV6HrtoWbWpe33W4HWAWB33lAWZWlceW4ITttttTIsttGrrCHrurJokVkkoouTISJoQ2SoHHCstTTTSTaaaaaaaaaa', 'awDXtnPPPP0gghhxnxxxmBinnl62FSHVEEQEvvvEEHHpEFHev65plcWB3XfXzXY3EuoW5e7uIsrkkCkkrTFICkuJJoJokouuJrJ2sI22roJkoouttTFaaaaaaaaaaaaaaa', 'awDD>mPPPP00hhhixnfwAZwixWV2FSkpEECEEHEEHHpCCts5vHlwDDNXYYYY5CrurCrIItRHdppQQQHr2TT2ouuooJJJuJJJrJJTtSSSITFFtFFFaaaaaaaaaaaaaaaaaa', 'aaDyCB000P0hhhgixnAfAZwgxAVSTsk4EEEECHEHvHHCrFVZvvXlzwcpHQ2uS6SV6HJoHHQEvHroooJkutSCuuUrrrrrr2JSSSFFTTFFFFFTIaaaaaaaaaaaaaaaaaaaaa', 'aaDzoH80h000ghgnwnAAAZfgxf6STSuHCCHEHHEEEHHHrFuJQEQkur2SIIIS4BVs>HdbHHkJJUr2u2k2rtrruSJJJJSJSSSSTFFFFtTTTTaaaaaaaaaaaaaaaaaaaaaaaa', 'aawDbJi8h000hhijxxfAAZAgxwV6TISEHHoHQHHECQbCrFHbp4pkIUIFFFttUGtFIuJJusuuHkHHJooouIrSuISSUIISSSSSFTFFTTaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aawDzJm888hhhgizxxwffZNhxwV6IIS6662rCHEHHEQCkTuoSstFtIIITTruJJSFISrJouoJJJUJUSSSSISSsTTTsIuSSSITFTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaazDov888hhnnifwNnwwWNgwx7V2I2kCrrCoQQHHk2kSTFFFFFJkCkJIIJJoorIIuUJkrSUJJJJSSSSITSSSSTTTTSTTTTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaawDdJi888h8iAiflxwnHfiww72SI2222r22kkHkSSSttsUJoQCHQuuIIkoQQrtIJuusIssssSSsISIFTSITFFFFFTTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaDwol8888inifxx3xnQxnwwVTTT22C2rCSrSSItFsuoHQQQoJuoCITIuSITFFIUUSSrrSSsIIIIFFFFFFFFFTFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaDDeQg888ixxjfxfmwbnxxwESTSS6rsUGtttFFS2kkouussSCQuITTTssFTFI2J2SJGIISItttFFFTTTFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaafzNHm888gnwwnlnnv3gxfw6SSIt>USSSSSSSSoJrSsIIsSsUIITTTTsSuFFssIsuJIFFFFFTTFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaf<DYQi8888iwfnwjpfixzl222ItIS222uJJrrrJJuHHrr2IIIIISurS2TFFSsII>FFTTTTTTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaD9Nvlh88giixwivlnxxfNC22IISSSr2JJJJJkCHoooUItIIsuourJttFFFFttFTTTTTTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaD<y3ef88hiihn5Awgwmww462IIuSSJJurruuoosIIFTFTIIsIIIItFFFFFTTTTFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaa<DLfdxg8nxfzwmgfxxwn76VSSSuuuuksSSSIIIIITTISSSItttFFFTTTFTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaz<ywcfhinxfngfffwxwCTSIuuSIIISIIIIttttttFF>tFFtFTTTTTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaazDDflfihghgZmZxzwfFFFukRuISItsItttttttFFFFTTTTTTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaayywxww3BWZwmfAXw5FFtsRHHkRussItItttttTTTTTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaNffwAjjAmflwXzJTFITsJs>IIt>tttFFTTTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaawwfwAffmffAEtFFFtTIISsttFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaa3ZAffKzfAJFFIsIIIFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaAABwvIFFkuSIIIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa']
ir_buche_color = {'a': (255, 255, 255), 'b': (96, 65, 58), 'c': (114, 81, 73), 'd': (102, 70, 56), 'e': (105, 73, 65), 'f': (150, 121, 107), 'g': (205, 182, 170), 'h': (215, 193, 180), 'i': (197, 172, 159), 'j': (167, 146, 138), 'k': (72, 49, 49), 'l': (129, 102, 90), 'm': (148, 127, 119), 'n': (187, 160, 147), 'o': (73, 49, 44), 'p': (92, 67, 60), 'q': (62, 38, 28), 'r': (68, 51, 44), 's': (54, 33, 34), 't': (40, 27, 24), 'u': (63, 41, 41), 'v': (99, 75, 67), 'w': (160, 131, 117), 'x': (173, 144, 130), 'y': (180, 141, 117), 'z': (143, 110, 92), 'A': (137, 112, 102), 'B': (116, 93, 87), 'C': (78, 60, 53), 'D': (163, 123, 100), 'E': (87, 68, 60), 'F': (38, 27, 28), 'G': (44, 26, 20), 'H': (82, 58, 54), 'I': (50, 35, 33), 'J': (62, 42, 36), 'K': (134, 99, 90), 'L': (125, 91, 75), 'M': (115, 82, 67), 'N': (144, 108, 99), 'O': (237, 223, 212), 'P': (232, 215, 204), 'Q': (80, 54, 44), 'R': (66, 38, 40), 'S': (58, 43, 41), 'T': (47, 35, 37), 'U': (54, 35, 29), 'V': (85, 68, 66), 'W': (107, 84, 77), 'X': (133, 100, 84), 'Y': (125, 91, 82), 'Z': (125, 103, 96), '0': (223, 204, 191), '1': (196, 162, 137), '2': (67, 51, 49), '3': (120, 93, 81), '4': (94, 76, 74), '5': (110, 84, 72), '6': (76, 60, 58), '7': (102, 85, 82), '8': (214, 186, 165), '9': (147, 103, 79), '<': (144, 101, 84), '>': (43, 23, 24)}
"""==============================
Un pain d'epice par Raphael C.
=============================="""
rc_pdepice_color = {
" " : (255, 255, 255), # transparence
"#" : (196, 119, 2), # orange exterieur #c47702
"." : (255, 174, 0), # orange interieur #ffae00
"A" : (10, 8, 10), # noir #0a080a
"B" : (236, 83, 89), #bouton rouge #ec5359
"C" : (0, 153, 36), # bouton vert #009924
"D" : (255, 144, 222), #couleur rose #009924
"E" : (254, 254, 254), #blanc #fefefe
"F" : (180, 27, 27), #rouge du chapeau #b41b1b
}
rc_pdepice_image = [
" FFF ",
" FFFFF ",
" FFFFFFF ",
" FF#####FF ",
" FF#.....#FF ",
" FF#.......#FFAA ",
" #.........#EE A",
" #..A...A..#AEEEA",
" #...........#AEA ",
" #..D.....D..#EAE ",
" #..E...E..# ",
" #...EEE...# ",
" #.......# ",
" #.....# ",
" #...# ",
" ######.....###### ",
"#..E...........E..#",
"#.E.............E.#",
"#..E.....B.....E..#",
" ######.....###### ",
" #.....# ",
" #..C..# ",
" #.....# ",
" #.....# ",
" #..B..# ",
" #.....# ",
" #.....# ",
" #.......# ",
" #.......# ",
" #.........# ",
" ##.........## ",
" #......#......# ",
" #EE...# #...EE# ",
" #.EE.# #.EE.# ",
" #..EE# #EE..# ",
" #....# #....# ",
" #....# #....# ",
" #....# #....# ",
" #### #### ",]
"""========================================================
Une horloge facon casion qui affiche 20:22 par Raphael M.
========================================================"""
#20:22, clin d'oeil à 2022 ! :-)
rm_horlogecasio_color={
"#": (13, 13 ,13), # Noir
"L": (42, 42, 42), # Lettre du 42
"-": (62, 90, 147), # Bleu contour
".": (164, 169, 153), # .ris pour le fond
"F": (104, 104, 96), # .ris foncé
"C": (165, 171, 162), # .ris clair
"B": (227, 225, 233), # Blanc
"N": (250,)*3,
" ": (255, 255, 255), # Transparent
}
rm_horlogecasio_image = [
" ################################# ",
" ################################### ",
"CC##BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##CC ",
".F##BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##F. ",
" ###BB.........................BB### ",
" ##BB.LLL..LLL.....LLL..LLL...BB## ",
" ##BB...L..L.L..L....L....L...BB## ",
" ##BB..L...L.L......L....L....BB## ",
" ##BB..LLL.LLL..L...LLL..LLLL.BB## ",
" #BB.........................BB# ",
" #BB#########################BB## ",
" ##BB###NNN#NNN#NN##N##NNNN###BB## ",
" ##BB###N###N#N#N###N##N##N###BB## ",
" ##BB###N###NNN##N##N##N##N###BB## ",
" ##BB###NNN#N#N#NN##N##NNNN###BB## ",
" ###BB#########################BB### ",
"CC##BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##CC ",
".F##BBBBBBBBBBBBBBBBBBBBBBBBBBBBB##F. ",
" ################################### ",
" ################################# "]
"""=========================
Une lanterne par Sybil L.
========================="""
sl_lanterne_color = {
" " : (255, 255, 255), # transparence
"a" : (111, 102, 102), # acier de la lanterne #6f6666
"s" : (71, 71, 71), # fond de la lanterne #474747
"d" : (255, 218, 172), # dégradé 1 de la bougie #ffdaac
"D" : (255, 199, 154), #dégradé 2 de la bougie #ffc79a
"b" : (255, 181, 121), # dégradé 3 de la bougie #ffb579
"t" : (40, 37, 37), # tige bougie #282525
"f" : (213, 59, 0), # dégradé bas de la flamme #d53b00
"F" : (193, 53, 0), # dégradé coté clair de la flamme #c13500
"!" : (242, 114, 8), # orange centre bas de la flamme #f27208
":" : (230, 109, 10), # orange centre haut de la flamme #e66d0a
"h" : (167, 46, 0), # dégradé haut de la flamme #a72e00
"?" : (242, 250, 251), # vitre lanterne #f2fafb
}
sl_lanterne_image = [
" aaaaaaaa",
" aa aa",
"aaaaaaaa a",
"a a h a a",
"a ah:h a a",
"a aF!F a a",
"a a f a a",
"a adtb a a",
"a adDb a a",
"a adDb a a",
"a adDb a a",
"a adDb a a",
"a adDb a a",
"a sdDbsasa",
"assdDbsaa ",
"aaaaaaaa ",]
# Participations des élèves : Listing des créations
"""
Parfois les élèves ont rendu un codage non conforme,
Parfois l'image proposée ne s'intégrait pas de manière harmonieuse,
Ils ont participé leur production n'a juste pas été sélectionnée pour le dessin final.
==== Liste de tous les élèves participants, image sélectionnée ou pas ===
1 Raphaël M Une horloge digitale qui affiche 20h22 façon Casio F91W mais affiché au mur
2 Matheo L étoile
3 Alexis M tasse chocolat chaud
4 Aurélien B étoile
5 Sarah V flocon de neige
6 Adam Y Chandelle
7 Rayan C bonhomme de neige
8 Anthony F cadeau de noel jaune et rouge
9 Florian G Un petit papa noel
10 Neila S chaussette de noel
11 Merlin C Un sapin
12 Justine C Joyeux Noël en texte en PixelArt
13 Romeo B bonnet de noel
14 Ilyas R une buche de Noël
15 Ilana R couronne de noel
16 Robin C Houx de noël
17 Raphael C bonhomme en pain d'épice
18 Mathis L cadeau de noël emballé
19 Sybil L bougie
20 Samuel V un bonhomme de neige
21 Antoine R bouteille de vin
22 David G oreillettes
23 Julien R un calisson
24 Bilal L Guirlandes
25 constance A un saumon sous forme de poisson
26 Anna C sucre d'orge
27 Thomas S Bouteille de champagne
28 Sylvain B bol de chocolats
29 Romain L Chandelier
30 Noah M Bougies
31 Coline R Truffe en chocolat
+ 2 enseignants
==============================
"""
# Dessin de l'image sur une Casio Graph 90+E
def trace_casio(clr: dict, img: list, x_pos: int, y_pos: int, size: int = 1):
img = [list(i) for i in img]
for i in range(len(img)):
show_screen()
for j in range(len(img[i])):
if clr[img[i][j]] != (255, 255, 255):
for k in range(size):
for o in range(size):
set_pixel(x_pos+5+j*size+o, y_pos+5+i*size+k, clr[img[i][j]])
# Construction du mur, effet pixel alétoire 4x4
for x in range(0,385):
for y in range(0,43):
r,g,b = randint(250,255), randint(222,242), randint(210,242)
set_pixel(2*x, 2*y, (r,g,b))
set_pixel(2*x+1, 2*y, (r,g,b))
set_pixel(2*x, 2*y+1, (r,g,b))
set_pixel(2*x+1, 2*y+1, (r,g,b))
trace_casio(afc_cadeau_color, afc_cadeau_image1,263,67)
trace_casio(afc_cadeau_color, afc_cadeau_image2,237,62)
trace_casio(ml_cadeau_color, ml_cadeau_image,247,60)
trace_casio(ir_couronne_color, ir_courone_image, 5, 12)
trace_casio(rm_horlogecasio_color, rm_horlogecasio_image,340,55)
trace_casio(ns_chaussette_color, ns_chaussette_image,350,20)
# Construction de la table, effet pixel aléatoire + degradé.
for x in range(0,385):
for y in range(82,193):
c = 82+y//2+randint(0,8)
set_pixel(x, y, (c,c-95,c-130))
trace_casio(ar_vin_color, ar_vin_image,54,22)
trace_casio(ar_vin_color, ar_vin_image,70,55)
trace_casio(ts_bouteille_champagne_color, ts_bouteille_champagne_image,45,45)
trace_casio(sb_bol_de_chocolat_color, sb_bol_de_chocolat_image, 112, 75)
trace_casio(cr_truffeenchocolat_color, cr_truffeenchocolat_image, 120,81)
trace_casio(cr_truffeenchocolat_color, cr_truffeenchocolat_image, 125,78)
trace_casio(cr_truffeenchocolat_color, cr_truffeenchocolat_image, 123,83)
trace_casio(ay_chandelle_color, ay_chandelle_image1, 20, 85)
trace_casio(ay_chandelle_color, ay_chandelle_image1, 134, 103)
trace_casio(ay_chandelle_color, ay_chandelle_image1, 225, 67)
trace_casio(ay_chandelle_color, ay_chandelle_image2, 79, 160)
trace_casio(ay_chandelle_color, ay_chandelle_image2, 310, 90)
trace_casio(am_chocolatchaud_color, am_chocolatchaud_image,10,127 ,2)
trace_casio(am_chocolatchaud_color, am_chocolatchaud_image,340,115)
trace_casio(rc_pdepice_color, rc_pdepice_image, 116, 127)
trace_casio(jr_calisson_color, jr_calisson_image,260,174)
trace_casio(jr_calisson_color, jr_calisson_image,272,173)
trace_casio(jr_calisson_color, jr_calisson_image,284,175)
trace_casio(jr_calisson_color, jr_calisson_image,265,167)
trace_casio(jr_calisson_color, jr_calisson_image,276,168)
trace_casio(jr_calisson_color, jr_calisson_image,271,162)
trace_casio(ac_orge_color, ac_orge_image,320,155)
# Buche et accessoires
trace_casio(ir_buche_color, ir_buche_image, 171, 100)
trace_casio(rc_houx_color, rc_houx_image, 230, 105)
trace_casio(mc_sapin_color, mc_sapin_image, 215, 107)
trace_casio(mc_sapin_color, mc_sapin_image, 255, 103)
trace_casio(fg_papanoel_color, fg_papanoel_image, 200, 110)
trace_casio(sv_bonhomme_color, sv_bonhomme_image, 270, 95)
trace_casio(sl_lanterne_color, sl_lanterne_image, 177, 70,2)
trace_casio(jc_joyeuxnoel_color, jc_joyeuxnoel_image, 50, 15,2)
# Affichage final de l'image
show_screen()
"""
#### ## ##### #### ##### #### #### #### ####
## ## #### ## ## ## ## ## ## ## ## ## ## ## ## ##
## ## ## # ## ## ## ## ## ## ## ##
## ## ## ##### ## ## ## ### ## ## ### ###
## ###### ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
#### ## ## ##### #### ##### ###### #### ###### ######
#### ##### ## ## #### ##### ## ## ###### ##### ## ## ##### ####### ####
## ## ## ## ### ## ## ## ## ## ## ## ## ## ## ## ### ## ## ## ## # ##
## ## ## #### ## ## ## ## ## ## ## ## # #### ## ## ## ## # ##
## ## ## ## #### ## ## ## ## ## ##### ##### ## #### ## ## #### ##
## ## ## ## ### ## ## ## ## ## ## ## ## ## ### ## ## ## # ## #
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## # ## ##
#### ##### ## ## #### ##### ##### #### ## ##### ## ## ##### ####### #######
"""
# Lycée Louis Pasteur, concours de Noël 2022 de Casio.
La 3D semble bizarrement être à la mode cette année, c'est curieux... ![;) ;)](./images/smilies/wink.png)
Bref comme l'année dernière, tous ceux qui ont bien voulu partager leurs créations sur Graph 90+E jusqu'à présent se sont visiblement donné à fond, désintégrant littéralement les limites de ce qui avait pu être réalisé jusqu'alors en Python sur cette machine !![Géant! :#tritop#:](./images/smilies/123.gif)
Nous trouvons la chose à la mesure des gros efforts consentis par Casio en dotation pour ce concours, et espérons que ces derniers sont également satisfaits de tous les chefs-d'œuvre qu'ils ont reçu.![;) ;)](./images/smilies/wink.png)
![;) ;)](./images/smilies/wink.png)
Bref comme l'année dernière, tous ceux qui ont bien voulu partager leurs créations sur Graph 90+E jusqu'à présent se sont visiblement donné à fond, désintégrant littéralement les limites de ce qui avait pu être réalisé jusqu'alors en Python sur cette machine !
![Géant! :#tritop#:](./images/smilies/123.gif)
Nous trouvons la chose à la mesure des gros efforts consentis par Casio en dotation pour ce concours, et espérons que ces derniers sont également satisfaits de tous les chefs-d'œuvre qu'ils ont reçu.
![;) ;)](./images/smilies/wink.png)