π
<-

News 2024
August (6)
July (4)
June (8)
May (6)
April (11)
March (6)

News 2023
August (6)
July (6)
June (10)
May (12)
April (14)
March (11)

News 2022
October (11)
August (4)
July (4)
June (3)
May (8)
April (5)
March (6)

News 2021
August (4)
July (12)
June (6)
May (7)
April (6)
March (4)
January (10)

News 2020
August (6)
July (14)
June (11)
May (8)
April (19)
March (4)

News 2019
August (2)
July (3)
June (4)
May (8)
April (3)
March (5)

News 2018
August (7)
June (11)
May (5)
April (13)
March (12)

News 2017
August (5)
July (6)
June (3)
May (3)
April (20)
March (11)
January (10)

News 2016
August (5)
July (5)
June (4)
May (3)
April (6)
March (2)

News 2015
August (6)
July (6)
June (5)
May (4)
April (12)
March (8)

News 2014
August (6)
July (7)
June (3)
May (1)
April (2)
March (6)

News 2013
August (6)
July (14)
June (1)
May (5)
April (1)
March (1)

News 2012
August (3)
July (3)
June (3)
April (2)
March (3)

News 2011

Vainqueur catégorie Python-classe concours Noël 2022 Casio

New postby critor » 03 Feb 2023, 16:43

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

Dans une annonce précédente, nous te partagions une partie des participations Python de cette année.

16378Nous avons l'immense joie d'apprendre aujourd'hui même le vainqueur en Python dans la catégorie classe.

C'est donc notre cher cent20 enseignant de Mathématiques et NSI au Lycée Louis Pasteur, et déjà grand vainqueur de l'année dernière, qui a une nouvelle fois su mener brillamment ses disciples à la victoire ! :bj:

Il a su réinvestir et améliorer sa stratégie gagnante de l'année dernière.
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.


Félicitations donc à tous les padawans en question ayant chacun conçu un élément du dessin 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
  • Sybil L. : bougie
  • 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

Chaque élève peut dès maintenant communiquer soit choix de lot. Au menu :
  • enceinte JBL Go Essential noir (valeur 30€)
  • montre Casio A168WER-2A
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

Et un gros merci à Casio pour toutes les créations d'œuvres d'art qu'a induites cette superbe nouvelle édition ; nous avons hâte à la découverte des autres participations et gagnants, ainsi qu'à l'édition de l'année prochaine !

Annonce futur mode examen fx-CP400 conforme MMS Abitur 2029

New postby critor » 02 Feb 2023, 12:00

En Allemagne, l'examen de fin d'études secondaires équivalent du Baccalauréat français est l'Abitur, après un cursus de 6 à 7 ans selon les Länder au Gymnasium, équivalent à la fois du collège et du lycée Français.

Comme tu le vois déjà, il existe des disparités entre les Länder ; l'Allemagne est en effet un Etat fédéral et chacun des 16 Länder est souverain en terme d'éducation.

Un cadre national existe toutefois pour réduire les disparités et lisser la valeur de l'Abitur. On peut citer :
  • pour la partie politique, la Conférence permanente des ministres de l'Éducation des Länder (Kultusministerkonferenz ou KMK)
  • pour la partie pédagogique, l'Institut pour le développement de la qualité dans l'éducation (Institut zur Qualitätsentwicklung im Bildungswesen ou IQB), basé à Berlin

Depuis la session 2017 pour les épreuves de l'Abitur en Allemand, Anglais, Français et Mathématiques, chacun des Länder puise dans une banque nationale d'exercices publiée sur le site de l'IQB.

En Mathématiques, les exercices de la banque peuvent y être de 3 types selon le type d'outil numérique autorisé :
  • aucun outil numérique
  • autorisant les seules calculatrices scientifiques (wissenschaftlicher Taschenrechner ou WTR)
  • autorisant les calculatrices graphiques munies d'un moteur de calcul formel (CAS), et jusqu'à présent c'était interprété comme une autorisation entre autres des calculatrices graphiques d'entrée et milieu de gamme non munies d'un tel moteur (grafikfähige Taschenrechner ou GTR)

Si la réglementation locale des Länder ne peut pas passer en autorisant un outil interdit, elle peut toutefois se montrer plus restrictive. Pour référence niveau autorisation des calculatrices pour l'Abitur, nous en sommes arrivés aujourd'hui sauf erreur à la situation suivante, par rang de population :
















LandRang/populationWTRGTRCAS
Nordrhein-Westfalen
1er
Bayern
2è
Baden-Württemberg
3è
Niedersachsen
4è
Hessen
5è
Sachsen
6è
Rheinland-Pfalz
7è
Berlin
8è
Schleswig-Holstein
9è
Brandenburg
10è
Sachsen-Anhalt
11è
Thüringen
12è
Hamburg
13è
Mecklenburg-Vorpommern
14è
Saarland
15è
Bremen
16è

Une nouvelle réforme d'uniformisation a été décidée pour une mise en oeuvre à la session 2029 de l'Abitur. Elle redéfinit intégralement les outils numériques pouvant être autorisés.

Comme nous te l'annoncions, l'outil CAS y est remplacé par l'outil MMS (modulares Mathematiksystem).

MMS c'est quoi ? Le nouveau sigle y est défini pour l'occasion. C'est un logiciel intégré de mathématiques devant être obligatoirement capable de fournir entre autres les fonctionnalités suivantes :
  • résolution d'équations et systèmes d'équations (numérique et littéral)
  • dérivée et intégration de fonctions (numérique et littéral)
  • limites de fonctions
  • représentation graphique de fonctions (avec possibilité de faire varier un paramètre, de déterminer numériquement les zéros, les coordonnées d'extrema, les coordonnées de points d'intersection)
  • opérations arithmétiques de base sur les matrices et vecteurs (littéral)
  • transformations de matrices (opérations sur les lignes par exemple)
  • inversion de matrices
  • calcul de probabilités pour des distributions binomiales et normales (fonction de répartition et probabilités cumulées)
  • tableur et feuille de calculs
  • représentation graphique de données par des diagrammes

Les calculatrices graphiques haut de gamme peuvent répondre à cette nouvelle définition et donc rester autorisées.

Mais note bien qu'il s'agit désormais d'une définition logicielle. Les calculatrices haut de gamme seront a priori en compétition directe avec des logiciels et applications intégrés de Mathématiques tournant sur smartphone, tablette ou ordinateur (Geogebra, Desmos, Xcas, Maple, ...).

Attention toutefois, car la définition du MMS interdit également des fonctionnalités :
  • représentation graphique d'objets géométriques
  • applications spécifiques de fonctions élémentaires (résolution d'équations, fonction dérivée première ou seconde) en relation avec des définitions ou formules mathématiques (fonctions spécifiques pour déterminer les zéro de certaines fonctions, équations de tangentes à une courbe, longueur d'une courbe, aires et volumes d'objets géométriques, équation d'un plan à partir des coordonnées de trois points, angle entre deux vecteurs, écart type d'une variable aléatoire, détermination de la valeur d'un paramètre d'une distribution aléatoire à partir de données)

Or les calculatrices graphiques haut de gamme disposant du calcul formel, sont également toutes munies d'une application de géométrie dynamique.

Sur la haut de gamme TI-Nspire et HP Prime a priori pas de problème, car il est possible de configurer le mode examen, et donc de désactiver les fonctionnalités interdites dont l'application de géométrie dynamique.

Par contre, il y avait un problème avec Casio et sa fx-CP400.

Ici le mode examen n'était jusqu'à présent pas configurable, et l'application de géométrie ne faisait pas partie des fonctionnalités bloquées.

Et bien bonne nouvelle, Casio a discuté avec l'IQB pour proposer une solution, et cette dernière a été acceptée.

La fx-CP400 va bénéficier d'une mise à jour avec un mode examen conforme pour l'Allemagne. Nous nous attendons soit à un nouveau mode examen allemand en plus de celui que nous connaissons déjà, soit à l'ajout de la possibilité de configurer le mode examen.

Selon l'IQB, la fx-CP400 dans ce mode examen sera bien conforme par rapport à la définition de l'outil MMS.

À bientôt...

Source : https://www.casio-schulrechner.de/de/pr ... r/fxcp400/

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

Mise à jour img2calc images Python monochromes transparentes

New postby critor » 18 Jan 2023, 12:54

13917img2calc est notre service en ligne gratuit de conversion d'images pour tes projets sur calculatrices.

Un large choix de formats cible t'est proposé :
  • fichiers à appeler depuis tes programmes en langage Basic :
    • .g3p pour Casio Graph 90+E et fx-CG50/20/10
    • .c2p pour Casio fx-CP400 et fx-CG500
    • .8ca ou .8ci pour TI-82 Advanced Edition Python, TI-83 Premium CE, TI-84 Plus CE et TI-84 Plus C Silver Edition
    • .8xi pour TI-83 Plus (compatible TI-82 Plus, TI-82 Advanced monochrome et TI-84 monochrome),
    • .83i pour TI-83 (compatible TI-82 Stats et TI-76.fr)
    • .82i pour TI-82
    • .86i pour TI-86
    • .85i pour TI-85
    • .73i pour TI-73
  • fichiers à appeler depuis tes scripts en langage Python :
    • IM8C.8xv pour les éditions Python des TI-83 Premium CE et TI-84 Plus CE
  • scripts Python pour les différentes bibliothèques de tracé par pixels disponibles selon les modèles :
    • ti_draw (TI-Nspire CX II)
    • graphic (TI-Nspire CX II avec KhiCAS, TI-Nspire CX avec KhiCAS, NumWorks avec KhiCAS, Casio Graph 90+E et fx-CG50 avec KhiCAS)
    • nsp (TI-Nspire avec Micropython)
    • ti_graphics (TI-83 Premium CE et TI-84 Plus CE éditions Python)
    • casioplot (Casio Graph 90/35+E II, fx-9750/9860GIII et fx-CG50)
    • hpprime (HP Prime)
    • kandinsky (NumWorks)

Aujourd'hui, parlons donc de la conversion d'images en scripts Python pour calculatrices graphiques munies d'un écran monochrome.

Il s'agit de :
  • la dernière génération USB Power Graphic 3 de calculatrices graphiques Casio monochromes (depuis 2019) : Graph 35+E II, fx-9750GIII et fx-9860GIII
  • la première génération monochrome de TI-Nspire (2007-2011) : TI-Npspire, TI-Npspire CAS, TI-Npspire Touchpad et TI-Npspire CAS Touchpad
Autrement dit de nos jours, les conversions Python pour écran monochrome concernent essentiellement les modèles Casio.

Les Graph 35+E II, fx-9750GIII et fx-9860GIII étant pourvues d'un écran 128×64 pixels, voici ce que cela pouvait te donner :

Mais dans ce contexte, cela se passait parfois mal. C'était le cas lorsque tu fournissais une image utilisant de la transparence. Tu obtenais alors une forme entièrement noire, entièrement blanche, ou pire entièrement vide :


Le problème venait du fait que lorsqu'il devait générer un script Python pour calculatrice monochrome, img2calc travaillait sur 2 couleurs. Or pour ce genre d'image la transparence compte comme une 3ème couleur, et en conséquence une couleur était perdue lors de la conversion.

Et bien bonne nouvelle, la dernière mise à jour sortie ce jour corrige ce problème.

Désormais lorsque tu lui fournis une image transparente à convertir en script Python pour un écran monochrome, img2calc travaille bien sur 3 couleurs.

Il t'est donc enfin possible d'utiliser des images transparentes pour tes projets Python sur Casio Graph 35+E II et fx-9750/9860GIII ! :bj:
Code: Select all
#image converted on TI-Planet
#tiplanet.org/img2calc

from casioplot import set_pixel


#the image drawing function
#- rle : image RLE-compressed data
#- w : width of image
#- pal : palette of colors to use with image
#- zoomx : horizontal zoom
#- zoomy : vertical zoom
#- itransp : index of 1 transparent color in palette or -1 if none
def draw_image(rle, x0, y0, w, pal, zoomx=1, zoomy=1, itransp=-1):
  i, x = 0, 0
  x0, y0 = int(x0), int(y0)
  nvals = len(pal)
  nbits = 0
  nvals -= 1
  while(nvals):
    nvals >>= 1
    nbits += 1
  maskval = (1 << nbits) - 1
  maskcnt = (0xFF >> nbits >> 1) << nbits
  while i<len(rle):
    v = rle[i]
    mv = v & maskval
    c = (v & maskcnt) >> nbits
    if (v & 0b10000000 or nbits == 8):
      i += 1
      c |= rle[i] << (7 - nbits + (nbits == 8))
    c = c + 1
    while c:
      cw = min(c, w - x)
      if mv != itransp:
        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 -= cw
      x = (x + cw) % w
      y0 += x == 0 and zoomy
    i += 1


#palette for your image
#3 RGB-888 colors
palette_pplan = (
(0,0,0),(248,252,248),(0,0,0),
)

#your image data
#72x64 RLE-2 pixels
image_pplan = (
b'H\21&\1\xd8\1\5\22\t\6\t\2\5\xd0\1\5\6-\6\5\xcc\1\5\x025\6\5\xc8\1\1\69\2\5\xc8\1\1\2=\6\1\xc8\1\1\2A\2\1\xc8\1\1\x025\2\5\2\1\xc8\1\1\2\r\n\t\6\1\6\5\2\1\xc8\1\1\2\25\2\t\16\5\6\5\xc4\1\1\6!\n\t\n\t\xbc\1\5\2\t\2\25\n\r\6\t\xb8\1\5\2\5\6\25\n\25\2\t'
b'\xb0\1\t\2\1\n\21\22\25\2\t\x84\1)\n\t\2\x012\t\6\5\x80\1\1*\25\16\r\32\t\6\1\xfc\0\5\2\25\6!\16!\6\t\2\1\xfc\0\1\6%\2\25\26-\2\1x\5\2%\16\21\26\t\16\r\2\1x\1\6\t\6\25\26\t\26\5\2\5\26\1t\5\2\t\32\r\16\25\n\5\2!t\1\6\t\6\5\22\t\6\31\16\5\6\5\x84\1\5\2'
b'\r\6\r\26\35\22\t\6\1\x84\1\1\6\t\16\1"\21\36\t\2\5\xfc\0\5\2\r\36\1\32\5&\5\6\5x\1\6\tF\5&\5\6\tl\5\2\r\2\1B\5\16\1\22\5\n\td\5\2\t\6\t*\1\16\1\16\1\26\t\6\21X\1\6\t\6\r&\5\n\1\16\5\26\t\16\rP\1\2\r\6\r\2\5*\1\22\r\16\25\16\1P\6\t\n\t\2\1.\5\22\5\2\5'
b'\6\t\2\25\2\1P\2\r\n\21.\1\26\5\6\5\2\5\32\1\2\5L\2\t\22\r*\1\36\5\6\t\36\1\6\5H\2\t\26\t&\5"\5\6\5\22\21\6\t@\2\t\32\5&\1\26\t\2\t\2\5\2\t\2\25\6\t<\2\21\2\5\6\1&\1\26]\6\t4\2\21\2\1\6\5"\5\22\31\2\5\22)\n\x050\2\25\n\1&\1\22\25\2\21\6\1\n)\6\t(\2\25'
b'\n\1"\1\22\r\6\31\6\t\n%\n\5$\6\35"\5\22\t\2%\2\21\6)\6\t\34\6\25&\5\16=\6\21\n%\n\t\24\1\2\21\32\1\6\5\2\25\n-\6\1\4\t\6)\6\t\20\1\2\21\22\t\2\5\2\25\6\1\6-\2\1\f\5\n%\n\t\b\5\2\r\16\25\2\25\6\t\n%\2\5\f\t\6)\6\t\4\5\2M\6\5\0\t\6!\6\1\24\5\n)\2\5\b\1'
b'\6%\2\r\2\5\6\5\f\5\2%\2\1\30\t\6%\6\5\4\5\6\35\6\r\2\5\2\5\20\5\2\31\6\1\2\1 \5\n!\6\5\4\5\26\5\16\5\n\1\2\5\20\1\6\1\36\1\2\5 \t\6!\6\1\b\25\2\5\36\5\2\1\24\1\2\5\2\t\16\1\6\1(\t\n\31\2\1\34\1\2\1\6\5\22\5\2\1\24\1\2\5\2\t\16\5\2\1,\r\n\21\2\1\30\5\2'
b'\1\n\1\22\1\6\1\24\1\2\5\36\5\2\18\t\16\1\6\1\30\1\6\1\36\5\2\5\24\1\2\t\26\5\6\1@\r\n\5\24\5\2\5\32\t\2\1\30\1\6\5\22\5\6\5L\25\20\5\6\5\26\5\n\1\30\5\2\5\22\5\2\5\xfc\0\1\6\5\32\5\2\t\34\1\2\5\22\5\2\1\x80\1\1\2\t\26\5\2\5$\1\2\5\26\1\2\5x\5\2\5\32\1'
b'\6\5$\1\2\1\32\1\6\tp\5\2\5\32\1\2\5(\1\2\1\32\5\n\td\5\2\t\32\1\2\5(\1\2\1\36\t\6\tX\t\6\5\32\5\2\1,\1\2\1"\r\6\5T\5\6\5\36\5\2\1,\1\2\1*\t\6\1T\1\2\t"\5\2\1,\1\2\x012\5\2\1T\1\2\5\36\t\2\5,\1\2\35\26\5\2\1T\1\2\5\32\t\6\5,\1\n5\2\1P'
)

#palette for your image
#2 RGB-888 colors
palette_dplan = (
(248,252,248),(0,0,0),
)

#your image data
#114x64 RLE-1 pixels
image_dplan = (
b".\3\2\r\2\3\0\3\xb8\3\17\xdc\1\1\xf6\n\1\xe0\1\1\xde\1\3\xde\1\3\xe0\1\1\xe0\1\1\xde\1\3\xde\1\5\xda\1\a\xda\1\t\xd8\1\t\xd6\1\r\xd2\1\21\xce\1\25\xcc\1\25\xcc\1\25l\17N\25j\23\2\3\0\5>\23f)\0\x056\17f%\2\1\0\v0\rh'\6\t2\vh92\tj!\4\a\0\t,\r4\1>\27\6\17"
b"*\r6\5.\1\b\25\16\5\0\1\2\3\n\v\4\31,\v,\3\6\23\6\3\b\3\0?\"\3\0\21*\5\2\25\16\3\0\3\0\1\2\3\x041\269\22\3\6\33\b\1\0\3\20m\2\35\6\3\4\25\n\3\b\1\n9\0Y\4\1\2\25\6\31\4\x9d\1\4\33\2\31\4y\0\31\2\5\0\xbb\1\0\5\0\5\0\t\0\a\0\xc1\1\f\1\0\3\fy\0\27\6\27\0\3"
b"\24\5\22[\x001\0\23\"\a\0\a\n\35\n-\0\1\x001\f\1\n\a\16\23\22\3 \v\6\a\29\4\t\4\3\b\25\b\t\b\1\n\1 \v\b\5\6\3\0\31\x001\0\31\6\t\20\1\b\1\n\5\n\23\0\3\16\1\4\v\f\3\0\1\0?\4\v(\t\6\31\26\v\6\a\16)\20\a\2\1\22\1\30\5\4\25\0\1\16\1\2\37\x005\20\5@\5\n\1\f"
b"\5\2e\xfe\0O\b\tN\v$\27\6\5\2\1\0\a\0\25\b\r\0\t^\a\b\r\20\5\f\t\4\35\n\vf\21\0\1\f\5\n-\f\tF\3\20\33\n\1\4\3\6\1\2-\16\5T!\26\5\n-\16\3N%\32\3\f\21\6\21`%0\a\4\v\0\27\34\3\0\3.'.\1\x027\22\x036%83\20\3:%.\1\b/(\3&!.;*\1(\t\0\x1309"
)

#image drawing code sample
from casioplot import show_screen
draw_image(image_dplan, 0, 0, 114, palette_dplan, zoomx=1, zoomy=1, itransp=0)
draw_image(image_pplan, 0, 0, 72 , palette_pplan, zoomx=1, zoomy=1, itransp=0)
show_screen()

16354


Bonnes conversions à toi, et n'hésite surtout pas à nous montrer tes projets ! ;)

Liens :

Test émulateur nouvelle fx-92 Collège - rentrée 2023

New postby critor » 16 Jan 2023, 12:04

Avec leurs 77,2% de parts de marché valeur sur l'année civile 2018, et sans concurrence sérieuse cela n'a probablement pas reculé depuis, les calculatrices Casio fx-92 Collège sont à raison l'idole des collégiennes et collégiens, élèves de Seconde également depuis la réforme du lycée, et bien évidemment de leurs enseignantes et enseignants.

Les Casio fx-92 sont des modèles de calculatrices scientifiques dédiés à la France ; on ne les trouve nulle part ailleurs.

Si l'actuelle formidable fx-92+ Spéciale Collège française appartient à la génération EX / Classwiz lancée à la rentrée 2014., l'aventure des modèles fx-92 français a pour sa part commencé à la rentrée 1992 avec la toute première fx-92 Collège. Revivons ensemble ce grand moment d'Histoire avec Julien Courbey :

Depuis, plusieurs générations se sont bien évidemment succédées jusqu'à aujourd'hui. En voici la liste accompagnée d'un résumé des améliorations logicielles et matérielles apportées :
  • rentrée 1994, génération S / VPAM : saisie des calculs infixés comme on les écrit
  • rentrée 1998, génération W / SVPAM : écran 2 lignes semi matriciel avec affichage mixte saisie et résultat, pavé bidirectionnel, saisie des calculs préfixés comme on les écrit, calcul en virgule flottante sur 34 bits
  • rentrée 2001, génération MS / SVPAM : pavé quadri directionnel, historique de calcul
  • rentrée 2004, génération ES / Natural Display : moteur de calcul exact, calcul flottant étendu à 40 bits, saisie en écriture naturelle, nouvel écran matriciel 96x31 pixels mais à cristaux liquides bleus, nouveau processeur nX-U8/100 cadencé à 0,5 MHz, mémoire ROM étendue à 96K, mémoire RAM étendue à 3,5K, convertisseur d'unités, bibliothèque de constantes physiques, résolution de systèmes jusqu'à 3 équations et inconnues, zéros de polynômes jusqu'au degré 3
  • rentrée 2008, génération ES Plus / Natural VPAM : calcul des médianes et quartiles en statistiques
  • rentrée 2014, génération EX / Classwiz : menu par icônes, génération de QR Codes, définitions simultanées de 2 fonctions, choix de la langue, nouvel écran matriciel 192x63 pixels contrasté avec cristaux liquides noirs, processeur accéléré à 2,5 MHz, mémoire ROM étendue à 256K, mémoire RAM étendue à 8K, systèmes jusqu'à 4 équations et inconnues, polynômes jusqu'au degré 4, nouvelles applications (tableur, programmation à la Scratch, tableau périodique des éléments)

Jusqu'à présent, ces noms de générations sont inscrits sur les modèles commercialisés hors de France, mais jamais sur les modèles fx-92 Collège français. Pour te permettre de te répérer, voici donc la frise chronologique des modèles français associés à chacune de ces générations :
?
V
Super-FX
W
SVPAM
MS
SVPAM
ES
Natural Display
ES Plus
Natural VPAM
EX
Classwiz
1992
1993
1994
1997
1998
1999
2000
2004
2007
2008
2009
2015
2018

fx-92 Collège

fx-92 Collège

fx-92 Collège II

fx-92 Collège III

fx-92 Collège New

fx-92 Collège New+

fx-92 Collège New+

fx-92 Collège

fx-92 Collège 2D

fx-92 Collège 2D+
(GY463)

fx-92 Collège 2D+
(GY468)

fx-92 Spéciale Collège
(CY246)

fx-92+ Spéciale Collège
(CY295)


Hors de France, les modèles de chaque génération sont numérotés en partant de fx-82 pour l'entrée de gamme jusqu'à fx-991 pour le haut de gamme. Le modèle français fx-92 de chaque génération apparaît donc ainsi comme un modèle intermédiaire de milieu de gamme.
15539La première révolution majeure des calculatrices scientifiques, nous la devons donc à Casio avec le passage à la génération ES à partir de la rentrée 2004 selon les pays, puis ES PLUS à partir de la rentrée 2008.

Elle fut déclinée à l'international en fx-82ES pour l'entrée de gamme et fx-991ES pour le haut de gamme.

En France cela s'est concrétisé avec la sortie de l'éphémère fx-92 Collège 2D pour la rentrée 2007, puis de la fx-92 Collège 2D+ pour la rentrée 2008.

Le nouvel écran matriciel 96x31 pixels ouvrait la porte à 2 nouvelles fonctionnalités d'importance :
  • d'une part la saisie des calculs directement en écriture naturelle
  • d'autre part, un moteur de calcul exact de type QPiRac
Un véritable coup de foudre pour les collégien(ne)s et leurs enseignant(e)s. Comment avait-on pu faire sans pendant des années ?... :favorite:
15540Deuxième révolution majeure des calculatrices scientifiques, toujours grâce à Casio avec le passage à la génération EX / Classwiz à partir de la rentrée 2014 selon les pays.

Cette génération fut déclinée à l'international en fx-82EX pour l'entrée de gamme et fx-991EX pour le haut de gamme.

En France nous avons eu droit à deux modèles successifs, la fx-92 Spéciale Collège à la rentrée 2015 puis la fx-92+ Spéciale Collège à la rentrée 2018.

Cette génération bénéficie d'un superbe écran matriciel cette fois-ci correctement contrasté avec des cristaux liquides noirs et profitant d'une définition très supérieure en 192x63 pixels, battant même sur ce critère les calculatrices graphiques monochromes d'entrée de gamme ! La finesse remarquable du pixel a permis nombre de nouveautés transversales aux différentes zones de commercialisation :
  • tableaux de valeurs de 2 fonctions étudiées en parallèle
  • application tableur / feuille de calcul
  • génération de QR codes pour exporter l'état de la calculatrice


15388De plus, nous avons des nouveautés très significatives qui sont spécifiques à certaines zones de commercialisation :
  • au Japon sur la fx-JP900 haut de gamme, application de tableau périodique des éléments
  • en France sur la fx-92+ Spéciale Collège, application Algorithmique offrant un langage de programmation orienté tracé à la Scratch-Logo-turtle, conformément au programme du collège


La génération EX / Classwiz est une véritable réinvention de la calculatrice scientifique par Casio, expliquant son succès phénoménal non seulement en France mais également dans le monde entier ! :bj:
15585En juin 2022, intrigués, nous partions te tester en Allemagne un tout nouveau modèle de calculatrice scientifique par Casio pour la rentrée 2022, la fx-800DE CW, au clavier très différent.

Et surprise cette nouvelle calculatrice dédiée au marché allemand était très différente des modèles EX / Classwiz précédents, avec un extraordinaire éventail de changements matériels et logiciels.

Clairement, la fx-800DE CW n'appartenait plus à la génération EX / Classwiz. Nous étions à l'aube d'une nouvelle révolution, et l'Allemagne avait le privilège de disposer en avant-première du premier membre d'une nouvelle génération : les CW / Classwiz.
Depuis cette rentrée 2022 Casio a poursuivi le déploiement de nouveaux modèles issus de cette génération CW / Classwiz :

Nous attendions donc avec impatience le tour de la France avec une nouvelle déclinaison de la fx-92 Collège
Et bien la révolution arrive, le jour historique c'est aujourd'hui… De nouveaux modèles au choix viennent tout juste d'être ajoutés à l'émulateur Classwiz disponible sur la plateforme en ligne Classpad.net de Casio.

Parmi les ajouts nous notons justement entre autres une nouvelle fx-92 Collège, dont le visuel reprend la nouvelle disposition de touches constatée sur les CW / Classwiz. Bingo, comme nous le pensions une fx-92 Collège nouvelle génération était donc bien dans les tuyaux, et devrait logiquement être disponible pour la rentrée 2023.

Pour marquer les 30 ans cette année de la famille des fx-92 Collège, notons que Casio nous reprend le nom historique du tout premier modèle. La fx-92 Collège de rentrée 2023 est donc la troisième du nom donc, après l'initiale de 1992 puis celle de 2004.

Puisque nous avons la chance d'avoir un émulateur sous la main, nous allons de suite en profiter pour t'effectuer un test complet de ce nouveau modèle.
Attention dans ce qui va suivre, puisque ne disposant pas encore d'un exemplaire de cette nouveauté :
  • les captures d'écran seront certes prises avec le nouvel émulateur en ligne fx-92 Collège de Classpad.net
  • par contre les critères ne pouvant être testés sur émulateur, ainsi que les photos lorsque plus pertinentes que des captures d'écran, seront repris de nos tests de la fx-800DE CW allemande de même génération











A) Ecran d'accueil et applications

Go to top

La fx-92+ Spéciale Collège offrait 8 applications à l'écran d'accueil, organisées sur 2 lignes de 4 colonnes.

Toujours 8 applications sur la nouvelle fx-92 Collège, mais on peut noter plusieurs changements à cet écran :
  • des icônes d'applications en niveaux de gris
  • un affichage toujours sur 2 lignes et mais désormais 3 colonnes, nécessitant certes de faire défiler pour accéder aux dernières applications, mais libérant en contrepartie de la place pour indiquer un titre systématiquement sous chaque application et non plus pour la seule application sélectionnée
Nous avons donc dans l'ordre les applications :
  1. Calcul
  2. Stats
  3. Tableur
  4. Tabl fonct (tableaux de valeurs)
  5. Equation (systèmes d'équations linéaires jusqu'à 4 inconnues)
  6. Prod. croix
  7. Algo
  8. Math Box
Et justement autres changements, nous notons :
  • la disparition de l'application Vérification
  • l'apparition d'une nouvelle application Math Box
Nous allons creuser tout ceci un peu plus loin.





B1) Modificateurs et nouvelles touches de fonction :

Go to top

Déjà avant même de toucher à quoi que ce soit, la première chose que nous remarquons est un tout nouveau clavier intégralement remanié. C'est donc la première fois depuis des décennies que Casio ose toucher à l'organisation des touches de ses modèles scientifiques, voyons un peu ça.

Jusqu'à la fx-92+ Spéciale Collège, nous disposions de 2 modificateurs permettant l'accès aux fonctions secondaires des touches :
SECONDE
et
ALPHA
. Toutefois, la calculatrice ne disposant que de 9 variables pour stocker des valeurs (A, B, C, D, E, F, M, x et y), la touche
ALPHA
portait fort mal son nom, ne permettant pas d'accéder à un clavier alphabétique complet, et servant en effet pour la majorité des touches restantes à accéder à des fonctions secondaires non alphabétiques.
Le clavier de la nouvelle fx-92 Collège corrige cette contradiction de la façon la plus radicale possible : en supprimant le modificateur
ALPHA
pour ne conserver que le seul modificateur
SECONDE
. Les noms de variables restent présents au clavier, mais sont désormais accessibles avec le modificateur
SECONDE
.

Le clavier de la fx-92+ Spéciale Collège avait le défaut d'être extrêmement chargé. La quasi totalité des 50 touches disposaient de fonctions secondaires accessibles avec les modificateurs
SECONDE
ou
ALPHA
, parfois même les deux. Il fallait ainsi tenir compte du code couleur de ces inscriptions de fonctions secondaires.
Sur la nouvelle fx-92 Collège, le clavier est simplifié avec 48 touches. De plus le modificateur
SECONDE
, de couleur bleue, ne concerne plus que les touches situées en dessous de sa position.

C'est-à-dire que ce nouveau clavier introduit une hiérarchie de touches : celles situées au même niveau ou au-dessus du modificateur
SECONDE
ne disposent plus que d'une unique fonction principale qui reste ainsi accessible en une seule et unique pression de touche à tout moment.

Nous avons quelques changements de touches en conséquence dans la partie haute du clavier :
  • pour l'écran d'accueil des applications, la touche
    MENU
    est renommée
    ACCUEIL
  • pour accéder aux réglages plus besoin de faire
    SECONDE
    MENU
    , il suffit de taper directement la nouvelle touche
    CONFIG
  • pour accéder au menu contextuel listant les fonctionnalités spécifiques à l'application active, ce n'est plus
    OPTN
    mais

Notons que la touche
CONFIG
ne concerne plus que les paramètres globaux de la calculatrice, c'est-à-dire utilisés pour l'ensemble des applications. Les réglages de paramètres relatifs à certaines applications sont maintenant listés avec leurs fonctionnalités au menu contextuel accessible via la touche


Et nous avons de plus quelques nouvelles touches dans la partie haute du clavier dont nous allons parler de suite :
VARIABLE
,
f(x)
et
CATALOG
, dont nous allons vite reparler.

Notons que l'ensemble de ces touches principales en partie haute évoquées jusqu'ici, bénéficient d'une double inscription :
  • un pictogramme directement sur la touche
  • un texte adjacent sur le boîtier de la calculatrice, qui n'est donc pas une fonction secondaire puisque de couleur noire et non bleue, mais une indication

On pouvait regretter sur fx-92+ Spéciale Collège l'éloignement entre les touches
EXE
permettant de valider un calcul et
S↔D
permettant de basculer le dernier résultat sous différents formats.
Problème ici encore résolu sur la nouvelle fx-92 Collège, avec une touche
FORMAT
juste à côté de la touche
EXE
!




B2) Pavé directionnel et nouvelle interface menus :

Go to top

Avec la fx-92+ Spéciale Collège de plus en plus de choses se passaient dans les menus désormais organisés en arborescence. L'interface te permettait d'y naviguer de la façon suivante :
  • touches
    et
    pour faire défiler la liste des choix d'un menu, par groupes de 4, avec la position globale dans le menu indiquée à tout moment par un ascenseur à droite de l'écran
  • touches
    et
    pour aller dans un sous menu ou retourner au menu parent
Les 4 choix affichées étaient numérotés de 1 à 4, et tu les activais en tapant la touche numérique correspondante.

La nouvelle fx-92 Collège pousse encore et toujours plus loin dans la transition entre une simple calculette et un véritable ordinateur de poche.

La numérotation des choix de menus ainsi que leur validation avec les touches numériques disparaissent.

Désormais les touches
et
te permettent de sélectionner librement les différents choix d'un menu de façon individuelle, choix intuitif que tu n'as plus qu'à valider !
Mais il ne suffit pas d'améliorer l'interface, car ce n'est pas sans conséquences sur le clavier.

Face à ce changement d'interface, plusieurs problématiques étaient à résoudre :
  • cela impliquait un usage 4 fois plus intensif des touches fléchées
    et
  • et la touche de validation devenait donc
    EXE
    , située tout en bas à droite alors que les touches fléchées sont en haut du clavier, obligeant l'utilisateur à faire sans arrêt le grand écart
Et bien c'est beau de voir comme Casio n'a pas oublié de penser à tout niveau ergonomie également.

D'une part pour alléger l'usage des touches fléchées
et
, la nouvelle fx-92 Collège est dotée de 2 nouvelles touches de défilement en plus du pavé quadri directionnel. Une unique pression sur ces touches fera directement défiler l'affichage de toute une hauteur d'écran, vers le haut ou vers le bas. De quoi donc atteindre 4 fois plus rapidement le choix ciblé dans un menu !

D'autre part, Casio nous rajoute une deuxième touche de validation. En plus de l'historique touche
EXE
en bas à droite, nous avons maintenant une touche
OK
justement au centre du pavé directionnel. Une touche de validation donc littéralement sous la main lorsque l'on navigue dans les menus, c'est l'idéal !




B3) Catalogue de fonctions :

Go to top

Le clavier passe donc de 50 à 48 touches, avec de plus beaucoup moins de fonctions secondaires. Mais comment fait-on pour offrir autant ou même davantage de fonctionnalités dans ce cas ?

Et bien grande nouveauté, comme les calculatrices graphiques la nouvelle fx-92 Collège se voit dotée d'un catalogue de fonctions. Depuis n'importe quelle application, La nouvelle touche
CATALOG
te permet d'accéder à l'ensemble des fonctions de la calculatrice classées par catégories, aussi bien celles qui sont au clavier que celles qui n'y sont pas ou plus !






B4) Gestionnaire de variables :

Go to top

Comme tu l'as peut-être remarqué, la touche historique
STO
n'est plus présente sur la nouvelle fx-92 Collège. Mais alors, comment peut-on encore faire pour affecter des variables ?

C'est que cette disparition est liée à une nouveauté majeure. Comme sur la plupart des calculatrices graphiques, le nouveau clavier de la fx-92 Collège dispose maintenant d'une touche
VARIABLE
. Depuis n'importe quelle application cette touche te permet d'accéder à un véritable gestionnaire variables, te permettant :
  • de consulter d'un seul coup d'oeil les valeurs de l'ensemble des variables
  • de sélectionner une variable pour :
    • y stocker le dernier résultat obtenu
    • insérer son nom dans une saisie en cours
    • la modifier librement rien qu'en démarrant une saisie alphanumérique
Petit changement, nous perdons la variable historique nommée M pour mémoire, mais conservons malgré tout 9 variables puisque Casio nous rajoute une variable z à la place.




B5) Gestionnaire de fonctions :

Go to top

La fx-92+ Spéciale Collège te permettait de définir jusqu'à 2 fonctions sous les formes f(x)= et g(x)=. Pour cela, tu devais te rendre dans l'application Tableau, dédiée aux tableaux de valeurs de fonctions.

Toutefois problème, ces fonctions étaient très facilement oubliées par la calculatrice (simple retour au menu principal même sans changer d'application, extinction de la calculatrice peu importe qu'elle soit manuelle ou automatique, appui sur la touche
ON
, …)
.

Tu ne pouvais donc pas faire appel à ces fonctions à partir d'autres applications, et pouvais même être amené(e) à devoir les saisir plusieurs fois lors d'un même exercice.
Et bien c'est fini tout ça, puisque la nouvelle fx-92 Collège sort la définition des fonctions de l'application Tableau renommée pour l'occasion Tabl fonct.

La définition de fonctions s'effectue maintenant directement via la touche clavier
f(x)
, et ce peu importe l'application courante. Il t'est alors possible au choix :
  • d'insérer le nom de la fonction f ou g dans une saisie en cours
  • redéfinir le nom de la fonction f ou g
Nous pouvons juste regretter qu'à la différence du gestionnaire de variables, les définitions de fonctions ne soient pas ici directement affichées à l'écran en question.

Un gestionnaire de fonctions désormais transversal, puisque les fonctions que tu y définis sont maintenant utilisables depuis l'ensemble des applications. Non seulement Table fonct mais également Tableur, Calcul ou tout ce que tu veux !




Et cela a été tellement bien conçu qu'il t'est même possible d'utiliser f en tant que fonction auxiliaire dans la définition de g et vice-versa !

Enfin rajoutons que la calculatrice n'oublie plus les définitions de fonctions lors de l'extinction ou du changement d'application !




C1) Ecran en 4 niveaux de gris :

Go to top

15757Une formidable nouveauté de la fx-92 Collège à notre connaissance totalement inédite sur les calculatrices scientifiques, c'est un tout nouvel écran en niveaux de gris.

Comme parfaitement illustré par l'interface de réglage du contraste accessible via la touche
CONFIG
, 4 niveaux de gris sont possibles allant du clair au sombre, indiquant donc un codage interne utilisant 2 bits par pixel :
  • noir
  • gris foncé
  • gris clair
  • blanc

15602Niveau définition nous restons sur du 192×63 pixels, déjà très supérieure à ce qu'offrent les calculatrices graphiques d'entrée de gamme.

Du changement par contre au niveau des drapeaux en haut d'écran. Nous passons de 20 drapeaux sur la fx-92+ Spéciale Collège à 18 drapeaux sur la nouvelle fx-92 Collège.

En effet, la refonte du clavier ainsi que le nouveau gestionnaire de variables amènent à la suppression de 2 drapeaux :
  • le drapeau A lié au modificateur alphabétique des touches, la touche
    ALPHA
    ayant été supprimée du clavier
  • le drapeau historique M indiquant la présence d'une valeur non nulle dans la seule variable M, hérité du temps où les calculatrices scientifiques n'avaient qu'une seule mémoire - fort peu utile aujourd'hui puisqu'ignorant ainsi paradoxalement l'état de toutes les autres variables A, B, C, D, E, F, x et y - paradoxe levé maintenant qu'il n'y a de toutes façons plus de variable M

Va-t-il maintenant bien sûr rester à voir comment ces nouvelles possibilités d'affichage sont exploitées par le logiciel.




C2) Grands caractères en gras :

Go to top

La fx-92+ Spéciale Collège bénéficiait d'un pixel d'écran très fin. Elle disposait de 2 tailles de police de caractères :
  • une petite notamment pour les exposants
  • une grande
Sur la nouvelle fx-92 Collège, il y a du changement autour de la police en gros caractères. Elle adopte un effet de gras, peut-être pour en améliorer la lisibilité.




D) QR Codes, diagnostic et services en ligne :

Go to top

Avec le raccourci
SECONDE
OPTN
, la fx-92+ Spéciale Collège affichait un QR Code te permettant d'exporter l'état courant de ta calculatrice vers la plateforme en ligne Classpad.net, et y trouver divers possibilités d'enrichissement, sauvegarde et partage.

Le QR Code était affiché par défaut en version 11, mais si tu avais des difficultés à le flasher avec ton appareil tu pouvais le basculer en version 3 au pixel bien plus gros.

Rappelons que selon le volume de données que tu avais saisies, leur exportation pouvait nécessiter de flasher plusieurs QR Codes successifs, et que dans ce cas-là il te fallait utiliser l'application Casio Edu+ sur Android / iOS.

Une astuce moins connue, c'est que tu pouvais appeler l'affichage d'un QR Code depuis l'écran d'accueil pour accéder aux services en ligne disponibles pour ta calculatrice :
  • consultation du guide de l'utilisateur
  • contrôle de l'authenticité de ta calculatrice
11757117581175911760


En cas de réussite au test d'authenticité, tu avais de plus accès à du contenu premium :
11763

Ce qui était dommage, c'était que tout ceci était un peu caché.
Et bien du changement avec la nouvelle fx-92 Collège. Déjà, le raccourci de génération de QR Code, toujours proposé en versions 3 et 11 puisque la définition d'écran n'a pas changé, devient
SECONDE
x
.

Changement de comportement à l'écran d'accueil, le raccourci exporte maintenant l'état courant de la calculatrice.

Si tu souhaites accéder aux services en ligne depuis l'écran d'accueil , il te faudra désormais taper
CONFIG
pour générer le QR Code nécessaire.

Ou mieux que ça, la touche
CONFIG
appelée depuis n'importe quel autre écran t'affiche maintenant clairement un choix Mode d'emploi.

Les services proposés se basent sur le numéro de série électronique de la calculatrice inclus dans le QR Code en question, ici 006A-0000-0000-0000-0000-8BB1.

Son début 006A nous révèle plusieurs informations qui seraient affichées par l'écran de diagnostic auquel nous n'avons pas accès sur émulateur (car il nécessiterait de pouvoir presser plusieurs touches à la fois) :
  • le nom de code de l'édition française du firmware EX / Classwiz pour la nouvelle fx-92 Collège, EY-006
  • sa version, A
1635115989

Notons que la nouvelle fx-92 Collège ne semble pas encore connue du serveur de Casio, le manuel étant introuvable et le test d'authenticité échouant.




E1) Saisie naturelle en niveaux de gris :

Go to top

Et bien parlant niveaux de gris, nous n'avons pas à chercher bien loin. En effet Casio continue à faire évoluer significativement son moteur de saisie en écriture naturelle.

Dans une expression en cours de saisie justement, la zone sélectionnée par le curseur (numérateur, dénominateur, exposant, …) et donc affectée par la prochaine saisie est désormais mise en avant en noir, contre du gris pour tous les autres éléments de l'expression.

Une aide bienvenue pour mieux comprendre les différentes composantes d'une expression et priorités opératoires.




E2) Nouveau moteur de calcul flottant :

Go to top

Regardons maintenant un petit peu le moteur de calcul en virgule flottante, celui utilisé pour fournir les résultats en écriture décimale.

Prenons en mode degrés le calcul suivant :
$mathjax$Arcsin\left(Arccos\left(Arctan\left(tan\left(cos\left(sin\left(9\right)\right)\right)\right)\right)\right)$mathjax$


Le résultat théorique est de 9, mais en pratique les moteurs de calcul en virgule flottante de nos calculatrice répondent une valeur approchante. En regroupant alors les calculatrices par résultats, l'on peut identifier les moteurs de calcul flottants utilisés.

Une variante est de calculer
$mathjax$Arcsin\left(Arccos\left(Arctan\left(tan\left(cos\left(sin\left(9\right)\right)\right)\right)\right)\right)-9$mathjax$
, permettant ainsi d'afficher davantage de décimales par défaut.

Depuis 2004, les modèles de générations ES et EX / Classwiz répondaient à l'unison 9,00000000733338.

La nouvelle fx-92 Collège pour sa part déroge à la règle et nous sort un 9,0000000000000000075528 avec bien davantage de décimales.



Tentons de creuser un petit peu la chose justement. Rappelons que les nombres flottants s'écrivent sous la forme
$mathjax$M\times 10^E$mathjax$
avec M la mantisse et E l'exposant.

Voici un script Python conçu pour déterminer la précision de ces flottants, c'est-à-dire la taille maximale de la mantisse :
Code: Select all
def prec(b):
  k=0
  try:
    while 1+b**-k-1:
      k=k+1
  except:
    pass
  return k

Il suffit d'appeler prec(b)b est la base. Les valeurs de b usuelles sont :
  • 2 si l'on souhaite déterminer le nombre maximum de bits utilisables pour coder la mantisse
  • 10 si l'on souhaite déterminer le nombre maximum de chiffres significatifs utilisables pour la mantisse
Bien sûr pas de Python sur la nouvelle fx-92 Collège, mais il nous suffit de dérouler nous-même l'algorithme dans l'application Calcul, c'est-à-dire pour des valeurs croissantes de k calculer
$mathjax$1+b^{-k}-1$mathjax$
jusqu'à-ce que le résultat soit nul.

Pour placer le contexte :
  • les Casio de générations précédentes ES et EX / Classwiz, ainsi que les calculatrices graphiques actuelles d'entrée et de milieu de gamme calculent sur 40 bits, permettant 13 chiffres significatifs
  • la HP Prime ainsi que le haut de gamme Casio fx-CP400+E calculent pour leur part sur 48 bits, permettant 15 chiffres significatifs

Et bien la nouvelle fx-92 Collège calcule sur pas moins de 60 bits, permettant jusqu'à 19 chiffres significatifs, écrasant littéralement l'intégralité des calculatrices graphiques actuelles !




E3) Mode vérification transversal :

Go to top

Nous avons donc pointé plus haut la disparition de l'application Vérification de la fx-92+ Spéciale Collège.

Cette application te permettait de saisir des relations et d'en tester la véracité.

Et bien en réalité, cette fonctionnalité est toujours présente sur la nouvelle fx-92 Collège, mais adopte une forme bien plus transversale. Plus besoin ici de s'enfermer dans une application bien spécifique pour en bénéficier ; car la fonctionnalité prend la forme d'un mode vérification activable dans le menu contextuel à chaque application accessible avec la touche
.

Le mode vérification est disponible sur l'application Calcul où il te permet alors de retrouver très exactement ce qu'était l'application Vérification du modèle précédent.

Mais le mode vérification est également disponible sur les applications Tabl fonct et Equation.

Avec ce mode activé les résultats (images par la fonction et solutions des systèmes d'équations) ne te seront pas indiqués par la calculatrice ; ce sera à toi de les saisir et cette dernière t'indiquera si tu as juste ou faux.

C'est particulièrement pertinent dans l'application Tabl fonct où l'on pourra facilement enchaîner les calculs d'images par une même fonction avec une saisie minimale.

Formidable donc, la nouvelle fx-92 Collège se transforme en exerciseur !




E4) Calcul fractionnaire par étapes :

Go to top

Toujours dans le menu contextuel avec la touche
, l'application Calcul permet désormais de régler le mode de simplification sur automatique (par défaut) ou manuel.

En mode manuel, il est possible de faire dérouler étape par étape la simplification des résultats fractionnaires avec le raccourci
SECONDE
Rép
, et obtenir à chaque fois une indication du facteur commun utilisé :


Allant bien au-delà de la simple recopie du résultat, de quoi permettre aux utilisateurs d'avancer dans sa compréhension !




E5) Séparateur de milliers :

Go to top

C'est maintenant dans les paramètres de calcul accessibles avec la touche
CONFIG
que l'on peut activer la séparation des chiffres.

Dans ce mode un espace est ajouté pour séparer les chiffres des milliers et ainsi en faciliter grandement la lecture, aussi bien en partie entière qu'en partie décimale d'ailleurs :




E6) Format des résultats :

Go to top

Sur la fx-92+ Spéciale Collège, la touche SD te permettait de basculer le dernier résultat entre les écritures exactes et décimales.

Obtenir d'autres formes d'écritures nécessitait des manipulations spécifiques :
  • pour l'écriture sexagésimale, raccourci
    SECONDE
    °'"
  • pour l'écriture scientifique, un changement du format d'écriture décimale dans les réglages, d'autant plus lourd que si c'est pour des résultats isolés il sera à rechanger à chaque fois
Et bien la nouvelle touche
FORMAT
de la fx-92 Collège te permet de basculer le dernier résultat entre non plus 2 formes mais jusqu'à 6 formes au choix selon le contexte :
  • Standard (par défaut, écriture exacte si possible)
  • Décimal
  • Notation scientifique
  • Fraction
  • Décomposition en facteurs premiers
  • Sexagésimal




E7) Format décimal :

Go to top

Parlons maintenant de la configuration de l'écriture décimale. Sur la fx-92+ Spéciale Collège, c'était assez obscur avec :
  • Fix : pour limiter la partie décimale, avec en paramètre un nombre de 0 à 9 indiquant le nombre maximal de décimales à afficher
  • Sci : pour une écriture scientifique, avec en paramètre un nombre de 0 à 9 (de 1 à 9 pour le nombre maximal de chiffres significatifs à afficher, ou 0 pour ne pas limiter la chose)
  • Norm, avec en paramètre 1 ou 2 : 1 pour un basculement automatique en écriture scientifique lorsque jugé pertinent
Des dénominations historiques pas toujours heureuses, tout sauf évidentes avec le peu d'informations données à l'écran ; le risque était grand, surtout pour de jeunes utilisateurs, d'effectuer un réglage ne correspondant pas à ce qu'ils pensaient.
Et bien problème réglé avec la nouvelle fx-92 Collège. Dans les paramètres de calcul accessibles avec la touche
CONFIG
, le choix du paramètre de chaque écriture proposé est désormais illustré d'un exemple clair :




F) Nouveau matériel, mémoires et performances :

Go to top

15987Avant d'aller plus loin, parlons un petit peu des changements apportés au matériel interne entre la fx-92+ Spéciale Collège et la nouvelle fx-92 Collège, suite à nos tests sur la fx-800DE CW allemande de même génération.

Nous restons sur un microcontrôleur 8 bits nX-U8/100, cadencé non plus à 2,5 MHz mais 5 MHz. Les performances en calcul flottant sont pour leur part améliorées d'un facteur d'environ 1,8.

La mémoire ROM voit sa capacité étendue de 256 Kio à 512 Kio.

La mémoire RAM subit un traitement similaire, avec une capacité qui passe de 8 Kio à 24 Kio.




G) Application tableur et nouvelle gestion mémoire :

Go to top

La fx-92+ Spéciale Collège disposait donc de 8 Kio de mémoire.

Un des rares mais gros défauts de cette machine géniale était justement la mémoire. Le contenu de cette dernière était très régulièrement perdu :
  • à chaque extinction de la calculatrice, peu importe qu'elle soit automatique ou manuelle
  • à chaque appui sur la touche
    ON
  • mais également à chaque changement d'application, les différentes applications semblant réutiliser la même (petite) zone mémoire et donc en écraser le contenu
Tu avais besoin d'effectuer un petit calcul pour le code du tracé que tu étais en train de coder dans l'application Algorithmique ? Tu passais dans l'application Calculs, et de retour dans l'application Algorithmique tu te rendais compte que tu avais perdu l'intégralité de ta saisie…

C'était particulièrement douloureux dans le contexte des applications pouvant faire l'objet de saisies conséquentes : Statistiques, Tableur et Algorithmique.
La fx-92+ Spéciale Collège avait justement introduit une géniale application Tableur, gérant jusqu'à 45 lignes sur 5 colonnes.

Techniquement ce qu'il y avait d'intéressant avec cette application, c'est qu'elle nous donnait des informations sur la mémoire disponible. À vide elle disposait de 1,7 Ko de mémoire pour ta feuille de calculs, sur une capacité RAM globale de 8 Kio.
Avec la nouvelle fx-92 Collège la capacité RAM est triplée, passant donc à 24 Kio.

Mais bizarrement, la mémoire libre disponible pour l'application Tableur est très loin de progresser dans les mêmes proportions, n'augmentant qu'à un modeste 2,38 Ko.

Et bien en réalité, c'est toute la gestion mémoire qui a été revue, l'application Tableur ne semblant plus avoir accès qu'à une partie de la mémoire libre. Nos tests montrent en effet une énorme amélioration : le contenu saisi n'est plus perdu lors d'un changement d'application !

On peut désormais effectuer des saisies concurrentes dans les diverses applications (Stats, Tableur, Algo…), et basculer librement de l'une à l'autre !

Une grande liberté, tu pourras enfin effectuer des calculs pendant le codage de tes tracés dans l'application Algo sans avoir à aller chercher une autre machine !

Un outil d'un intérêt pédagogique exceptionnel ; les différentes applications te permettent en effet d'avancer en parallèle la résolution d'un problème sous ses différentes représentations !




H) Application Math Box:

Go to top

Et voici donc enfin la nouvelle application Math Box de la fx-92 Collège.

Elle regroupe en fait 4 sous-applications mathématiques que nous allons explorer :
  • Lancer de dés
  • Pile ou face
  • Droite grad.
  • Cercle




H1) Simulateurs d'expériences aléatoires :

Go to top

Les 2 premiers choix de Math Box, sont des simulateurs d'expériences aléatoires.

"Lancer de dés" permet de simuler jusqu'à 250 lancers de 1 à 3 dés.

L'option "Même résult" si activée permet de choisir entre 3 graines aléatoires, et ainsi obtenir les mêmes résultats sur différentes calculatrices.

Tu peux ensuite consulter les données ou fréquences des sommes de dés obtenues.

De façon similaire, "Pile ou face" permet de simuler jusqu'à 350 lancers de 1 à 3 pièces :


Illustration de la puissance supérieure du nouveau matériel, notons les petites animations en niveaux de gris jouées lors de la validation des paramètres de l'expérience aléatoire :


De formidables outils, de quoi concevoir et mettre en œuvre du superbes activités d'introduction des probabilités et ce dès la classe de Cinquième !




H2) Droite des réels :

Go to top

Autre choix de la nouvelle application Math Box, "Droite grad." pour "Droite graduée".

L'interface offre ici la possibilité de saisir jusqu'à 3 relations.

Ces relations peuvent adopter l'une des 8 formes suivantes :
  • x<a
  • x≤a
  • x=a
  • x>a
  • a<x<b
  • a≤x<b
  • a<x≤b
  • a≤x≤b

La ou les relations saisies sont ensuite représentées graphiquement sur la droite des réels.

Si les paramètres déterminés automatiquement pour cette fenêtre graphique ne te conviennent pas, tu peux également les personnaliser en appelant le menu contextuel de l'application avec la touche
. Il t'est alors proposer de modifier la coordonnée à placer au centre de l'écran, ainsi que l'échelle des graduations.

De très larges possibilités en perspective : introduction des nombres négatifs en Cinquième, comparaison entre valeurs exactes et approchées, test d'appartenance à un intervalle, solutions d'un système d'inéquations, … de quoi combler aussi bien l'enseignant pour sa conception d'activités que l'élève pour sa recherche ou vérification !




H3) Cercle trigonométrique :

Go to top

Enfin dernier choix de la nouvelle application Math Box, Cercle.

L'interface te propose ici de saisir jusqu'à 2 angles, puis te permet de les représenter sur le cercle trigonométrique :


Précisons que l'unité d'angle utilisée est celle des paramètres de calcul (degrés, radians ou grades), et qu'en cas de mauvaise unité tu peux donc immédiatement la changer avec la touche
CONFIG
sans perdre ta saisie.

Une fois sur le cercle, comme suggéré par l'ascenseur à la droite de l'écran, les touches
et
te permettent alors de basculer entre les deux angles pour afficher leurs images par les 3 fonctions trigonométriques sinus, cosinus et tangente, et ce en écriture exacte. Il s'agit donc d'un cercle trigonométrique interactif !

Attention, notons juste que les valeurs exactes trop complexes, bien que supportées dans les autres applications, basculent ici en écriture décimale, sans doute par manque de place.


Tu peux également changer le type de représentation, et opter pour le Demi-cercle trigonométrique supérieur.

Dernier choix de représentation, l'Horloge. Ici l'interface est différente.

Les flèches
et
te permettent d'avancer ou reculer l'aiguille des heures d'une unité. Te sont alors affichés les mesures des petit angle (θ1) et grand angle (θ2) séparant les aiguilles des heures et minutes.

Avec le cercle trigonométrique, la nouvelle fx-92 Collège met donc les pieds en Seconde, de façon fort pertinente suite aux nouvelles pratiques d'équipement (ou de non équipement) induites par la réforme du lycée.

L'horloge est un bonus pour les enseignants, une bel outil sur lequel s'appuyer pour des activités d'introduction en Seconde ou même d'approfondissement dès le Collège.




I) Nouveau logo d'extinction :

Go to top

1558816352Enfin, du changement à l'écran montré à chaque extinction de la calculatrice.

Le logo Casio n'y est plus tout seul. Décalé vers le haut il s'accompagne d'un slogan en gris convenant fort bien à la nouvelle fx-92 Collège : "Boost your Curiosity", nouvelle devise de Casio Education.




Conclusion :

Go to top

Casio avait déjà réinventé la calculatrice scientifique pas moins de 2 fois, changeant radicalement l'image de ce produit en le faisant véritablement entrer dans le 21è siècle :
  • génération ES avec écriture naturelle et calcul exact à partir de 2004 (fx-92 Collège 2D à partir de 2008 en France)
  • génération EX / Classwiz avec applications et QR Codes à partir de 2014 (fx-92 Spéciale Collège à partir de 2015 en France)

Malgré quelques petits défauts que nous venons d'évoquer, la fx-92+ Spéciale Collège programmable avec tableur de 2018 n'en restait pas moins une machine absolument géniale, avec plus d'une décennie d'avance matérielle et logicielle sur une concurrence totalement amorphe, et donc sans surprise un succès international !
Casio aurait pu se reposer sur ses lauriers, mais ce ne fut clairement pas. Au contraire Casio semble avoir écouté, retenu et pris minutieusement en compte le moindre petit retour de ses utilisateurs et enseignants ces 7 dernières années, car avec la nouvelle fx-92 Collège issue de la génération CW / Classwiz le constructeur change clairement tout !

Quasiment tout a été revu et modifié ou amélioré : écran en niveaux de gris, clavier ergonomique, gestion transversale des variables et fonctions, mémoire partagée pour les applications concurrentes, simplification par étapes, mode vérification transversal, menus intuitifs, etc.

Si nous ne devions retenir qu'un seul mot, ce serait intégration. En plus de la collection de nouveautés, nombre de fonctionnalités qui sur les modèles précédents étaient à aller utiliser dans des applications ou contextes bien précis deviennent accessibles de façon transversale à différentes applications. En conséquence une bien plus grande liberté dans la recherche et résolution d'un problème, pouvant dorénavant être effectuée en parallèle sous différentes représentations ! :bj:

La nouvelle fx-92 Collège de rentrée 2023 est un véritable bijou d'un intérêt pédagogique exceptionnel ; elle devrait ravir encore davantage les élèves de collège et même de plus en plus Seconde suite à la réforme du lycée, ainsi que bien évidemment leurs enseignantes et enseignants ! :favorite:

Nous avons hâte de pouvoir en découvrir les premiers visuels et la prendre en main pour approfondir les tests qui ne peuvent être effectués sur émulateur… alors à bientôt, et en attendant n'hésite pas toi aussi à aller découvrir et prendre en main cette petite merveille avec l'émulateur en ligne. ;)

Source + émulateur en ligne :

-
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.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
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.
873 utilisateurs:
>828 invités
>38 membres
>7 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)