π
<-

Casio Découvre participations Python au concours Noël 2022 Casio

New postby critor » 31 Jan 2023, 00:08

Collègien(ne) ou lycéen(ne), jusqu'à ce lundi 30 janvier Casio t'a permis de participer à son formidable concours de Noël 2022.

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)
Et en prime avec Casio, pas de perdant : lot de goodies Casio pour tous les autres participants !
Un superbe concours, merci Casio ! :favorite:

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.




  1. Hors concours Graph 90+E Python :
  2. Classes Graph 90+E Python :




Hors concours Graph 90+E - Réveillon de Noël au chalet sylvestre - critor

Go to top

16375J'ai envoyé une participation pour représenter TI-Planet, en précisant bien sûr que c'était pour le plaisir. Je ne souhaite en effet piquer de gros lot à personne.

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)

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: Select all
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()
Télécharger




Hors concours Graph 90+E - Menu en anaglyphe - Cirekraft/Schraf

Go to top

1637616377Voici maintenant Eric Schrafstetter (alias cirekraft chez nous ou schraf sur les réseaux sociaux), qui te partage la carte de son menu mais en anaglyphe rouge-bleu.

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: Select all
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()
Téléchargement




Classe Graph 90+E - grande table de Noël - cent20

Go to top

16378Et voici maintenant cent20 et son groupe de disciples au Lycée Louis Pasteur à Avignon, déjà grands gagnants lors de l'édition précédente.

Contrairement à 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. wrote: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.


Rendons à César ce qui est à César, créditons correctement les 21 artistes dont les œuvres apparaissent sur le rendu final :
  • 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
Bravo à toutes et à tous, c'est superbe cette année, encore plus que l'année dernière ! :D
Code: Select all
# 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.
Télécharger




La 3D semble bizarrement être à la mode cette année, c'est curieux... ;)
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 ! :#tritop#:

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

Divers 12 graphiques TI-HP émulées en ligne chez Internet Archive

New postby critor » 30 Jan 2023, 20:32

Lorsque nous consultons les sites des différentes constructeurs de calculatrices ou autorités de réglementation des examens, nous utilisons régulièrement la WayBackMachine (littéralement machine à remonter le temps) par Internet Archive. Elle nous permet d'affichage des sauvegardes d'anciennes versions des pages, et de mieux t'informer sur les dernières nouveautés.

L'Internet Archive est un organisme à but non lucratif américain, ayant pour objectif de préserver la connaissance humaine et de la mettre à disposition de tous dans une sorte de "bibliothèque d'Alexandrie en ligne".

Nous parlons de données, mais elles sont loin de se limiter aux seules sauvegardes de sites Internet, ce n'est qu'un aspect disponible. Bien d'autres choses sont archivées et disponibles : images, musiques, vidéos et même logiciels.

Un projet pantagruélique occupant à ce jour plusieurs milliers de téraoctets.

Dernière nouveauté dans la bibliothèque de l'Internet Archive : le tiroir des calculatrices.

Tu peux y retrouver plusieurs calculatrices graphiques sorties entre 1990 et 2002. Un seul clic sur une de ces calculatrices et elle reprend immédiatement vie grâce à l'émulateur en ligne MAME ! :favorite:

Au menu du tiroir, nous avons donc plusieurs modèles Texas Instruments :
  • 1990 : TI-81 avec ROM en version 1.8K
  • 1992 : TI-85 avec ROM en version 10.0
  • 1993 : TI-82 avec ROM en version 19.0
  • 1995 : TI-92 avec ROM en version 1.11
  • 1997 : TI-86 avec ROM en version 1.6
  • 1998 : TI-73 avec OS en version 1.60 sur un Boot en version 1.3005
  • 1998 : TI-89 avec OS en version 1.00
  • 2002 : TI-Voyage 200 avec OS en version 2.09

Sont également présents des modèles du regretté Hewlett Packard :
  • 1993 : HP 48GX avec ROM en version R
  • 1995 : HP 38G avec ROM en version A
  • 1998 : HP 48G+ avec ROM en version R
Une HP 39G (2000) est également présente, mais elle semble cassée. L'amorçage ne va pas plus loin que le Boot Code qui affiche systématiquemetn un message "No System".

Tout ceci nous rappelle le projet de site TI-Emulation (archive) porté par nos membres Persalteas et AlexRider38, qui avaient hélas dû renoncer face à l'hostilité de Texas Instruments, préoccupé par le fait que les fichiers permettent d'utiliser gratuitement ses produits sur tablettes et smartphones.
Ou encore notre émulateur de TI-z80 monochromes en Flash, qui pendant des années t'a permis d'essayer les programmes directement en ligne sans avoir à les télécharger et installer pour cela, avant de disparaître avec la mort de cette technologie.

Espérons que cette fois-ci sera la bonne. Car il est important de sauvegarder et préserver le formidable patrimoine éducatif développé par Texas Instruments pendant que nous l'avons encore sous la main.

D'ailleurs justement, quelque chose que nous avions développé et qui manque à ce jour : c'est la possibilité de choisir la version à émuler, ainsi que celle de charger un programme. ;)

Lien : https://archive.org/details/calculatordrawer
Source : https://blog.archive.org/2023/01/29/a-c ... t-archive/

NumWorks Une mystérieuse NumWorks verte t'accueille chez Nexity

New postby Admin » 26 Jan 2023, 18:03

Aujourd'hui, petite anecdote. Lorsque tu cherches à acheter un bien immobilier chez Nexity, regarde un peu qui c'est qui t'accueille pour t'aider à estimer ton crédit... Et oui, c'est ta fidèle calculatrice NumWorks !

Une campagne marketing originale et géniale, particulièrement pertinente dans le cadre de l'ajout prochain d'une application Finance avec la mise à jour Epsilon 20...
... sauf que non désolé, il ne s'agit très probablement pas d'une collaboration entre NumWorks et Nexity.

En effet si tu compares à l'image originale tu peux te rendre compte que bien d'autres modifications semblent avoir été mises en œuvre exprès pour rendre le produit méconnaissable. Outre le changement de colorimétrie donc, on peut noter :
  • un retournement horizontal (la NumWorks est à l'envers comme si tu la regardais dans un miroir)
  • un rognage taillé sur-mesures pour faire disparaître la marque NumWorks de la coque
  • une réduction de la définition de l'image, rendant les divers inscriptions restantes floues et donc illisibles
Nous sommes hélas ici face à une des nombreuses dérives contemporaines de l'Internet, et Nexity n'en est probablement pas entièrement responsable.

Nombre de professionnels commandant ou concevant des sites Internet ne veulent pas rémunérer d'artistes ou graphistes professionnels pour leurs images, et préfèrent opter pour bien moins cher, et entre autres à ces tarifs pour des banques d'images. Mais si la quantité à prix équivalent est peut-être supérieure, ce n'est pas le cas de la qualité.

Prix tirés vers le bas dans ce secteur et recherche de quantité font que ces fournisseurs de banques d'images ne font souvent pas appel à des artistes ou graphistes eux non plus, les remplaçant par des algorithmes ou Intelligences Artificielles, qui vont piller les galeries d'images publiques de particuliers, artistes, graphistes ou même ici entreprises. Leur appliquant alors ce genre de filtres histoire de rendre difficile tout rapprochement avec l'image source, ces outils génèrent ainsi très rapidement des banques de plusieurs centaines ou même milliers d'images immédiatement commercialisables, et tout ceci sans qu'un seul centime ne soit reversé aux détenteurs des droits d'auteur.

Si le maquillage malveillant n'est ici probablement pas à l'initiative de Nexity ni du concepteur de son site Internet, c'est quand même l'un d'entre eux qui a choisi le fournisseur.

La moindre des choses en réparation de cette faute serait sans doute un bandeau publicitaire NumWorks sur le site en question pendant quelques temps.
Remerciements à Afyu dont l'œil de lynx a immédiatement identifié la chose à travers toutes ces couches de maquillage.

Et félicitation à la communauté Omega pour ses hautes valeurs morales ; deux de ses plus éminents membres M4x1m3 et RapidZapper n'ayant pas hésité à monter immédiatement au créneau pour défendre la propriété intellectuelle de leur constructeur favori. Espérons que NumWorks aura la reconnaissance de faire un petit geste, c'est largement mérité.

Source : https://www.nexity.fr/ancien/GB00162954

TI-Nspire Logiciels TI-Nspire CX 6.0 avec licence Internet flottante

New postby critor » 25 Jan 2023, 14:45

Le logiciel TI-Nspire CX est un outil pédagogique d'un intérêt exceptionnel. Véritable logiciel intégré de mathématiques, il gère des documents que tu peux scinder en différentes pages, pages sur lesquelles tu peux ajouter de 1 à 4 applications de différents types :
  • Calculs
  • Graphique (toute représentation dans un repère : fonctions cartésiennes, polaires ou paramétriques, suites y compris récurrentes, équations différentielles, coniques, ou même relations)
  • Tableur & Listes (feuille de calculs)
  • Données & statistiques (pour les diagrammes bien spécifiques aux séries de données)
  • Editeur Mathématique (documents multimedia interactifs consistant en du texte formatté dans lequel tu peux inclure des images ou expressions mathématiques, et même évaluer automatiquement ces dernières)
  • Vernier Dataquest (acquisition de données physiques en connectant une interface Vernier ou compatible)
  • Widget (script Lua choisissable)
  • Editeur de programmes
  • Python - éditeur
  • Python - shell
Il t'est possible d'ajouter plusieurs applications du même type, même sur une même page.

Ces diverses applications même sur des pages différentes s'exécutent alors dans un même environnement ; c'est-à-dire qu'elles ont accès aux mêmes données et qu'un changement sur une donnée depuis une application est automatiquement répercuté dans toutes les autres. Un formidable outil pour avancer la recherche d'un problème mathématique en parallèle sous diverses représentations !

Le logiciel TI-Nspire CX est disponible dans différentes éditions couvrant nombre de plateformes :
  • ordinateurs Windows ou Mac
  • tablettes iPad
  • calculatrices TI-Nspire

Sur ordinateur, le logiciel TI-Nspire CX t'offre la possibilité d'afficher tes documents sous deux formats différents :
  • une vue ordinateur parfaitement adaptée à cet usage
  • une vue calculatrice reproduisant à l'identique l'affichage sur l'écran 320x240 pixels de la calculatrice et l'accompagnant d'un clavier, davantage adaptée au guidage en vidéoprojection d'une classe équipée en calculatrices TI-Nspire

Précisons que le logiciel TI-Nspire CX est le seul et unique logiciel officiel à gérer les transferts de données entre un ordinateur et une calculatrice TI-Nspire CX II.

Mais voilà, plusieurs problèmes.

Déjà, le logiciel TI-Nspire CX n'est pas libre d'utilisation, car nécessitant un numéro de licence au-delà d'une période d'essai de 90 jours.

Les numéros de licence pouvaient jusqu'à présent être acheté en ligne, pour une durée d'utilisation de 1 an, 3 ans ou même perpétuelle.

En France le problème n'était toutefois pas le prix, puisque fort généreusement :
  • un numéro de licence pour 3 ans d'utilisation (soit couvrant tout le cursus au lycée) est inclus lorsque tu achètes ta calculatrice (nouveaux emballages carton uniquement, pas les anciens emballages blister)
  • des numéros de licence de 3 ans sont fournis gratuitement aux enseignants en faisant la demande et justifiant de leur activité

Le numéro de licence saisi nécessite une connexion Internet pour activer la licence. Ceci n'est certes à faire qu'une seule fois, mais l'ennui est que le numéro de licence est alors lié à la machine utilisée.

Pour l'enseignant qui se trimballe d'une salle à l'autre avec son propre ordinateur portable, pas de problème. Par contre pour les enseignants qui utilisent l'ordinateur de la salle de classe, c'est autre chose. En effet une fois la licence activée, son numéro est définitivement lié à l'ordinateur sur lequel il a été saisi. Les licences pour enseignants peuvent certes être activées plusieurs fois (1 ordinateur personnel + 1 ordinateur professionnel), mais la limite est bien là et vite atteinte. À un moment le numéro ne pourra pas être réutilisé pour activer la licence sur de nouveaux ordinateurs, et ce même si tu ne te sers plus des anciens.

Or nous pouvons avoir le problème du changement d'ordinateur, de modifications matérielles ou logicielles effectuées à l'ordinateur et qui le font percevoir par le logiciel TI-Nspire CX comme un nouvel appareil (mise à jour du BIOS notamment), ou encore dans le cas d'usage de l'ordinateur de la salle de classe par l'enseignant (différentes salles utilisées, ordinateur remplacé suite à une panne ou un vol, changement de salle pas toujours prévu, ...).

16364Suite à la mise 6.0 sortie hier pour les calculatrices TI-Nspire CX II, nous te présentons aujourd'hui la mise à jour 6.0 des logiciels TI-Nspire CX pour Windows et Mac.

Bien évidemment cette mise à jour inclus les diverses améliorations Python que nous t'avons présentées à cette occasion.

Il semble également que le support des documents PublishView (.tnsp), sorte de version étendue du format TI-Nspire qui gérait en plus l'inclusion de vidéo mais n'était ouvrable que sur ordinateur et pas calculatrice, ait été retiré.

Mais ce qui explique ce saut majeur dans la numérotation de version, c'est un changement radical du système de licence. Nous passons du système à licence fixe décrit plus haut à une licence Internet flottante.

Ta licence est désormais régulièrement vérifiée en ligne (besoin donc d'une connexion Internet pour utiliser le logiciel), mais la différence c'est qu'elle n'est plus liée à un ordinateur précis, Texas Instruments s'adapte aux besoins des utilisateurs d'aujourd'hui, tu gagnes enfin le droit d'utiliser ta licence TI-Nspire CX sur autant de machines différentes qu'il te plaira.

Nul besoin non plus d'une connexion Internet permanente pour utiliser le logiciel TI-Nspire CX, chaque vérification réussie de ta licence t'ouvre une session d'utilisation de 7 jours sur la machine concernée, pendant laquelle il n'y aura pas de nouvelle vérification en ligne. Tu as donc juste besoin d'une connexion Internet :
  • à chaque lancement du logiciel TI-Nspire CX
  • dans le cas d'une machine que tu laisses allumée ou mets en hibernation, au moins une fois tous les 7 jours à compter du lancement du logiciel TI-Nspire CX

Même si il y a quelques avantages comme nous venons de voir, c'est en gros une évolution vers un système d'abonnement où il faudra régulièrement repayer pour continuer à pouvoir utiliser le logiciel TI-Nspire CX (ou à défaut s'embêter régulièrement à devoir justifier d'être toujours en exercice pour avoir une prolongation de licence gratuite) comme Casio l'avait fait avec ses logiciels d'émulation Manager Subscription il y a quelques années. C'est dans un sens bien dommage puisqu'il n'est désormais plus possible de posséder/acheter le logiciel, d'autant plus que les licences perpétuelles disparaissent de l'offre au passage.

C'est aussi problématique puisque le logiciel TI-Nspire CX est le seul à pleinement gérer les transferts de données avec une calculatrice TI-Nspire CX II, ce qui limitera donc lourdement les élèves dans l'utilisation de la calculatrice qu'ils ont achetée au-delà des 3 ans gratuits inclus. C'est également problématique pour ceux optant pour un achat d'occasion, la calculatrice ne sera plus pleinement utilisable.

Rappelons qu'à ce jour les transferts de données avec une calculatrice TI-Nspire CX II, ce n'est pas joyeux. En dehors de la solution payante précédente, les outils sont peu nombreux, limités en fonctionnalités, et ont diverses contraintes :
  • le logiciel de connectivité tiers TiLP pour Windows, Mac et Linux ne gère pas les TI-Nspire CX II
  • l'application de connectivité en ligne officielle TI-Nspire CX II Connect pour navigateurs Chromium (Google Chrome, Microsoft Edge, ...) a nombre de limitations : ne permet de transférer les fichiers qu'un par un, ne permet pas de choisir le dossier de destination sur la calculatrice, ne permet pas de choisir le fichier système à installer
  • l'application de connectivité en ligne tierce N-Link pour navigateurs Chromium fonctionne certes sous Linux mais pas Windows/macOS (contrairement à sa version application téléchargeable, qui fonctionne belle et bien)
Attention, l'installation du logiciel TI-Nspire CX 6.0 supprimera toute version précédente, et selon nos tests les ancien et nouveau systèmes de licence ne sont pas compatibles.

Si tu disposes d'un numéro de licence fonctionnel pour le logiciel TI-Nspire CX II 5.4 ou inférieur, il ne marchera pas avec le logiciel TI-Nspire CX 6.0 (et aucune garantie qu'il refonctionne à nouveau si tu réinstalles l'ancienne version).

Attention également, la période d'essai gratuit de 90 jours qui était incluse avec les versions précédentes du logiciel TI-Nspire CX disparaît avec la nouvelle version 6.0.

En conséquence, veille bien à ne pas mettre à jour le logiciel TI-Nspire CX sur ton ordinateur Windows ou Mac avant d'avoir obtenu un nouveau numéro de licence compatible de la part de Texas Instruments, sous peine de risquer de perdre immédiatement ta possibilité d'utiliser le logiciel TI-Nspire CX. :#non#:

Nous supposons qu'avec leur renouvellement dans les stocks, les emballages de machines neuves vont progressivement se mettre à inclure des numéros de licence compatibles avec le nouveau système de licence Internet flottante.

En attendant, pour que tu ne restes pas bloqué(e), nous te lions aussi bien les nouvelles que les anciennes versions en téléchargement ci-dessous.

Liens et téléchargements :

TI-Nspire Mise à jour TI-Nspire CX II 6.0 !

New postby critor » 24 Jan 2023, 23:42

16364Texas Instruments nous sort à nouveau aujourd'hui une mise à jour 6.0 pour ses calculatrices TI-Nspire CX II.

Le numéro de version complet est 6.0.3.374, et la compilation a eu lieu le 3 janvier 2023.

Cette mise à jour fait donc suite à la version précédente 5.4.0.259 compilée le 11 janvier 2022.

Attention, comme toutes les versions précédentes depuis la 5.3.2 incluse, cette nouvelle version 6.0.3.374 n'est pas compatible avec Ndless r2018, et son installation est comme à l'habitude bien évidemment sans aucun retour en arrière possible. Toute tentative de réinstaller une version inférieure te sera par la suite refusée.

Si tu as la chance de disposer d'une calculatrice faisant encore tourner une version 5.3.0 ou inférieure et choisis de mettre à jour vers l'une de ces versions, tu renonces donc à Ndless (et donc entre autres à KhiCAS en mode examen) pour une durée indéterminée, des jours, semaines, mois ou même années comme c'est déjà arrivé, nous l'ignorons.


Les nouveautés que nous avons pu trouver semblent converger vers le Python ; découvrons cela ensemble.

Par exemple les versions précédentes n'appréciaient vraiment pas que l'on utilise le type liste plutôt que le type tuple pour un paramètre de couleur. À un point tel que ce tout petit code de rien du tout faisait immédiatement redémarrer ta calculatrice, te faisant perdre l'ensemble des données saisies non encore enregistrées :
Code: Select all
from ti_draw import *
set_color(255, 0, 0) # ok
set_color((255, 0, 0)) # ok
set_color([255, 0, 0]) # reset
Et bien merveilleux, Texas Instruments a enfin corrigé ce bug !

Ce code se comporte désormais de façon bien plus correcte en déclenchant une exception plutôt qu'en redémarrant la machine.

Une excellente nouvelle, tu vas donc enfin pouvoir coder tes projets graphiques Python et entre autres jeux en toute sérénité ; il n'y a plus le risque de tout perdre à tout moment pour un simple crochet à la place d'une parenthèse !

Du changement également dans les bibliothèques Python que le système installe dans le dossier /PyLib/, et qui à la différence des bibliothèques intégrées ne sont pas utilisables en mode examen.

La bibliothèque ti_rover permettant de piloter le TI-Innovator Rover passe de la version 1.2 à la version 1.3.

Nous n'avons toutefois pas noté de changement dans les fonctions, en tenant compte aussi bien de celles qui sont exposées au menu que de celles qui ne le sont pas. Donc les changements doivent concerner le fonctionnement interne de quelque chose...

Téléchargements :
Link to topic: Mise à jour TI-Nspire CX II 6.0 ! (Comments: 26)

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1138 utilisateurs:
>1108 invités
>22 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)