Avec leurs 77,2% de parts de marché valeur sur l'année civile 2018, les calculatrices Casio fx-92 Collège sont l'idole des collégiennes et collégiens ainsi que de leurs enseignantes et enseignants.
L'actuelle formidable fx-92+ Spéciale Collège française appartient à la génération EX / Classwiz lancée à la rentrée 2014. Mais plusieurs générations du modèle fx-92 dédié à la France se sont bien évidemment succédées jusqu'ici.
Mais ces générations sont en fait à scinder elles-mêmes en différentes séries. C'est beaucoup plus visible hors de France, où des modèles directement issus de générations plus anciennes continuent à être commercialisés et à évoluer en parallèle de ceux des générations plus récentes, afin de répondre aux diverses restrictions de différents examens, établissements ou niveaux.
À ce jour nous avons 3 séries qui évoluent et sont commercialisées en parallèle :
les SVPAM
les ES
les Classwiz
With their 77.2% value market share in the calendar year 2018, the Casio fx-92 Collège calculators are the idol of middle school students and their teachers.
The current French fx-92+ Spéciale Collège belongs to the EX / Classwiz generation launched at the beginning of the 2014 school year. But several generations of the fx-92 model dedicated to France have obviously followed each other so far.
But these generations are in fact to be split into different series. This is much more visible outside of France, where models directly from older generations continue to be marketed and evolve in parallel with those of more recent generations, in order to meet the various restrictions of different exams, institutions, or levels.
Actually, we have 3 series that are evolving and being marketed in parallel:
the SVPAM
the ES
the Classwiz
La série conduisant aux modèles SVPAM a elle-même franchi plusieurs générations :
The series leading to the SVPAM models have themselves crossed several generations:
rentrée 1989, génération V Super-FX : nouveau microcontrôleur NEC D3045BGT avec un cœur de calcul plus rapide pour les fonctions transcendantes (c'est-à-dire non algébriques : trigonométriques, hyperboliques, logarithmiques, exponentielles)
gammme fx-92 française : fx-92 Collège II(1994) et fx-92 Collège III(1997)
gamme FX Junior française : FX Junior(1999 + redesign 2000)
rentrée 1994, génération S VPAM : saisie des calculs infixés comme on les écrit (touches à taper dans le même ordre des symboles de leur écriture)
1989 school year, V Super-FX generation: new NEC D3045BGT microcontroller with a faster computation core for transcendental functions (i.e. non-algebraic: trigonometric, hyperbolic, logarithmic, exponential)
French fx-92 range: fx-92 College II(1994) and fx-92 College III(1997)
French FX Junior range : FX Junior(1999 + redesign 2000)
1994 school year, generation S VPAM: input of calculations infixed as they are written (keys to be typed in the same order of the symbols of their writing)
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
gamme fx-92 française : fx-92 Collège New(1998) et fx-92 Collège New+(1999 + redesign 2000)
1998 school year, generation W SVPAM: 2 lines semi-matrix screen with mixed display input and result, bidirectional pad, the input of calculations prefixed as written, floating point calculation on 34 bits
French fx-92 range: fx-92 College New(1998) and fx-92 College New+(1999 + redesign 2000)
rentrée 2001, génération MS SVPAM : pavé quadridirectionnel, historique de calcul
gamme fx-92 française : fx-92 Collège(2004)
gamme FX Junior française : FX Junior Plus(2009)
2001 school year, MS SVPAM generation: four-way pad, calculation history
French fx-92 range: fx-92 College(2004)
French FX Junior range: FX Junior Plus(2009)
rentrée 2019, génération MS SVPAM 2nd edition
gamme FX Junior française : FX Junior Plus(2019)
2019 school year, MS SVPAM 2nd edition generation
French FX Junior range: FX Junior Plus(2019)
Voici maintenant les diverses générations de la série ES :
rentrée 2004, génération ES Natural Display : moteur de calcul exact QPiRac, 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
gamme fx-92 française : fx-92 Collège 2D(2007)
rentrée 2008, génération ES Plus Natural VPAM : calcul des médianes et quartiles en statistiques, verrouillage du mode de fonctionnement de la ROM(supprime la possibilité d'activer des fonctionnalités supplémentaires d'un simple coup de crayon sur le circuit)
gamme fx-92 française : fx-92 Collège 2D+(2008 + révision 2009)
rentrée 2019, génération ES Plus Natural VPAM 2nd edition
Now, here are the various generations of the ES series:
2004 school year, ES Natural Display generation: QPiRac exact calculation engine, floating calculation extended to 40 bits, natural writing input, new 96x31 pixel matrix display but with blue liquid crystal, new nX-U8/100 processor clocked at 0.5 MHz, memory ROM extended to 96K, memory RAM extended to 3.5K, unit converter, a library of physical constants, solving systems up to 3 equations/unknowns values, polynomial zeros up to degree 3
French fx-92 range: fx-92 College 2D(2007)
2008 school year, ES Plus Natural VPAM generation: calculation of medians and quartiles in statistics, locking of the ROM operating mode (removes the possibility to activate additional functionalities with a simple stroke of the pen on the circuit)
French fx-92 range: fx-92 College 2D+(2008 + revision 2009)
2019 school year, generation ES Plus Natural VPAM 2nd edition
La série ES à partir de la rentrée 2004 selon les pays constitue une première révolution majeure des calculatrices scientifiques, que nous devons donc à Casio.
Le nouvel écran matriciel 96x31 pixels ouvrait la porte à 2 nouvelles fonctionnalités d'importance :
la saisie des calculs directement en écriture naturelle
un moteur de calcul exact de type QPiRac
Un véritable coup de foudre pour les collégiens et leurs enseignants. Comment avait-on pu faire sans pendant des années ?...
La série ES fut déclinée à l'international en des modèles allant de fx-82ES pour l'entrée de gamme à fx-991ES pour le haut de gamme.
The ES series from the beginning of the 2004 school year, depending on the country, is the first major revolution in scientific calculators, which we owe to Casio.
The new matrix screen 96x31 pixels offered 2 new important features:
the input of calculations directly in a "natural writing"
an exact calculation engine like QPiRac
It was a real eye-opener for the students and their teachers. How could we do without it for years?...
The ES series was internationally differentiated in models ranging from fx-82ES for the entry-level to fx-991ES for the top-of-the-line.
Et voici enfin les générations de la série Classwiz :
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)
rentrée 2022, génération CW Classwiz : calcul flottant étendu à 60 bits, nouvel écran en 4 niveau de gris, processeur accéléré à 5 MHz, mémoire ROM étendue à 512K, mémoire RAM étendue à 24K, nouvelles applications (simulation d'expériences aléatoires, cercle trigonométrique, droite des réels), refonte du clavier, variables et fonctions partagées par les différentes applications et conservées à l'extinction
And finally, here are the generations of the Classwiz series:
2014 school year, EX Classwiz generation: menu by icons, generation of QR Codes, simultaneous definitions of 2 functions, choice of language, new matrix screen 192x63 contrasting pixels with black liquid crystals, processor accelerated to 2.5 MHz, memory ROM extended to 256K, memory RAM extended to 8K, systems up to 4 equations/unknowns values, polynomials up to degree 4, new applications (spreadsheet, Scratch programming, periodic table of elements)
French fx-92 range: fx-92 Spéciale Collège(2015) + fx-92+ Spéciale Collège(2018)
2022 school year, CW Classwiz generation: floating-point computation extended to 60 bits, new screen in 4 levels of gray, processor accelerated to 5 MHz, ROM memory extended to 512K, RAM memory extended to 24K, new applications (simulation of random experiments, trigonometric circle, line of the reals), redesign of the keyboard, variables and functions shared by the various applications and kept at extinction
Deuxième révolution majeure des calculatrices scientifiques, toujours grâce à Casio avec la série Classwiz à partir de la rentrée 2014 selon les pays.
Cette série bénéficie d'un nouvel é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 certaines calculatrices graphiques monochromes d'entrée de gamme. Ce nouveau pixel très fin 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
Second major revolution in scientific calculators, still thanks to Casio with the Classwiz series from the beginning of the 2014 school year depending on the country.
This series benefits from a new matrix screen, this time with good contrast and black liquid crystals, and a much higher definition in 192x63 pixels, beating even some entry-level monochrome graphic calculators. This new very thin pixel has allowed a number of new features across the different marketing areas:
tables of values of 2 functions studied in parallel
spreadsheet application
generation of QR codes to export the calculator status
De plus, nous avons des nouveautés très significatives qui sont spécifiques à certaines zones de commercialisation :
sur le modèle haut de gamme du Japon (fx-JP900), application de tableau périodique des éléments
en France sur la fx-92+ Spéciale Collège, application Algorithmique offrant un langagage de programmation orienté tracé à la Scratch-Logo-turtle, conformément au programme du Collège
Plus, we have some very significant new features that are specific to certain marketing areas:
on the top model in Japan (fx-JP900), application of periodic table of elements
in France on the fx-92+ Special College, Algorithm application offering a Scratch-Logo-turtle plot-oriented programming language, in accordance with the College program
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 !
The EX Classwiz generation is a real reinvention of the scientific calculator by Casio, explaining its phenomenal success not only in France but also worldwide!
Depuis cette rentrée 2022 Casio est de plus en train de déployer dans le monde entier des modèles issus d'une nouvelle génération CW Classwiz.
La génération CW Classwiz bénéficie d'un extraordinaire éventail de changements, dont le passage à un écran en 4 niveaux de gris, mais également un processeur encore une fois accéléré.
Pour illustrer les hautes capacités du nouveau matériel, voici quelques animations en niveaux de gris jouées par les simulateurs d'expériences aléatoires de la nouvelle application MathBox :
The CW Classwiz generation benefits from an extraordinary set of changes, including the switch to a 4-gray screen, but also a once again accelerated processor.
To illustrate the high capabilities of the new hardware, here are some grayscale animations played by the randomized experiment simulators of the new MathBox application:
L'actualité nous rattrape une fois de plus. Dans le cadre du déploiement de la nouvelle génération CW Classwiz, Casio va également renouveler ses modèles spécifiques à l'Espagne et au Portugal, probablement d'ici la rentrée 2023.
En effet, leurs manuels viennent tout juste d'être rajoutés sur le site de Casio :
la fx-82SP X II Iberia va être remplacée par la nouvelle fx-82SP CW
la fx-85SP X II Iberia va être remplacée par la nouvelle fx-85SP CW
la fx-570SP X II Iberia va être remplacée par la nouvelle fx-570SP CW
la fx-991SP X II Iberia va être remplacée par la nouvelle fx-991SP CW
Et bonne nouvelle, ces nouveaux modèles sont immédiatement testables dans l'émulateur en ligne si tu prends un abonnement sur ClassPad.net !
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 des annonces précédentes nous t'avions partagé une partie des participations Python de cette année, puis annoncé le grand vainqueur en Python dans la catégorie classe.
Nous avons l'immense joie d'apprendre maintenant le vainqueur sur fx-92+ Spéciale Collège dans la catégorie étudiants.
C'est donc notre inestimable _Orlando_, élève de Seconde qui n'a pas attendu le lycée pour se passionner pour cette formidable petite machine, lui ayant même conçu des chaîne vidéo et site de tutoriels dédiés dès le Collège !
Déjà grand vainqueur de l'année dernière, _Orlando_ revient donc nous régaler pour un réveillon grand format sur une table de 16, fort bien adaptée aux dimensions de la zone graphique utilisable sur fx-92+ Spéciale Collège(192×47 pixels utilisables sur un écran de 192×63).
Et si tu regardes le code, ce qu'il y a d'ingénieux pour contourner la limite de mémoire, c'est que le contenu des assiettes n'y est même pas défini ! En effet ce dernier y fait l'objet de déplacements aléatoires de la tortue. Outre le fait que le menu changera donc à chaque exécution, il nous faut bien avouer que cela rend malgré tout super bien !
Aller à x= -80 ; y= -5 Stylo écrit S'orienter à 270 degrés Avancer de 15 pixels Avancer de -15 pixels S'orienter à 0 degrés Avancer de 150 pixels S'orienter à 270 degrés Avancer de 15 pixels Avancer de -15 pixels S'orienter à 53 degrés Avancer de 25 pixels S'orienter à 270 degrés Avancer de 15 pixels Avancer de -15 pixels S'orienter à 180 degrés Avancer de 150 pixels S'orienter à 233 degrés Avancer de 25 pixels S'orienter à 270 degrés Avancer de 15 pixels S'orienter à 0 degrés Avancer de 3 pixels Tourner de ↺ 90 degrés Avancer de 12 pixels S'orienter à 0 degrés Avancer de 144 pixels S'orienter à 270 degrés Avancer de 12 pixels S'orienter à 0 degrés Avancer de 3 pixels S'orienter à 53 degrés Avancer de 3 pixels S'orienter à 90 degrés Avancer de 12 pixels S'orienter à 53 degrés Avancer de 18 pixels S'orienter à 270 degrés Avancer de 12 pixels S'orienter à 53 degrés Avancer de 3 pixels Stylo relevé Aller à x= -55 ; y= 6 S'orienter à 0 degrés 0 →A Répéter 16 Stylo écrit Répéter 2 Répéter 9 Avancer de 0,9 pixels Tourner de ↺ A degrés A+2,25 →A ⤴ Répéter 9 Avancer de 0,9 pixels Tourner de ↺ A degrés A-2,25 →A ⤴ ⤴ Stylo relevé S'orienter à 0 degrés Avancer de 17 pixels Si x>70 Alors Aller à x= -65 ; y= -3 Fin ⤴ Aller à x= -53 ; y= 9 Répéter 16 RanInt#(1;3 →A x →B y →C Si A=1 Alors S'orienter à RanInt#(1;360 degrés Avancer de -2 pixels Tourner de ↺ 90 degrés Avancer de 3 pixels Tourner de ↺ -90 degrés Répéter 4 Stylo écrit Avancer de 5 pixels Avancer de -5 pixels Stylo relevé Tourner de ↺ -90 degrés Avancer de 2 pixels Tourner de ↺ 90 degrés ⤴ Fin Si A=2 Alors Stylo écrit Répéter 15 Aller à x= RanInt#(B-4;B+4 ; y= RanInt#(C-2;C+2 ⤴ Fin Si A=3 Alors Aller à x= x ; y= y-1 RanInt#(2;8)×,1 →D Stylo écrit Répéter 18 Avancer de D pixels Tourner de ↺ 20 degrés ⤴ Fin Stylo relevé S'orienter à 0 degrés Aller à x= B+17 ; y= C Si x>70 Alors Aller à x= -63 ; y= 0 Fin ⤴ Aller à x= 0 ; y= 100
Merci encore Casio, c'est grâce à vous tout ça, vivement que l'on puisse déguster les formidables réalisations des gagnants des deux dernières catégories !
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.
Nous 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 !
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 :
# 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. =================================="""
"""======================================================== Une horloge facon casion qui affiche 20:22 par Raphael M. ========================================================""" #20:22, clin d'oeil à 2022 ! :-)
"""========================= 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))
# 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))
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 !
Nous te parlons régulièrement des 3 constructeurs historiques de calculatrices graphiques : Casio, Hewlett Packard et Texas Instruments.
Mais au tout début de l'aventure, ils étaient en fait 4. Le constructeur manquant est Sharp.
Nous te parlons moins souvent de ce dernier parce qu'il fait moins de choses, et car les informations sont extrêmement difficiles à obtenir. En effet Sharp s'est séparé de sa branche calculatrices en 2015. Tout ce qui concerne les calculatrices Sharp est depuis géré :
pour l'Europe par Moravia, une société tchèque fort tristement connue pour être totalement incapable d'apporter la moindre valeur ajoutée
Comme rien n'a bien évidemment été fait depuis, les derniers modèles graphiques de Sharp ont été :
2001 : EL-9900
2007 : EL-9900G en Europe, alignée sur les règles de l'Abitur allemand
2011 : EL-9900G SII en Europe, avec encore de nouvelles règles pour l'Abitur, rajoutant entre autres le calcul vectoriel
2013 : EL-9950G
Le retard technologique par rapport à la concurrence est abyssal :
la EL-9900G SII de 2011 a été le premier modèle à pouvoir être mis à jour, avec déjà pas moins de 8 ans de retard sur Casio et même 13 ans de retard sur TI
mais de toutes façons pas de publication de mises à jour du système après le lancement, la EL-9900G SII de 2011 est restée sur la version initiale 4.1, et la EL-9950 de 2013 est toujours restée avec la version initiale 1.2
pas de gestion d'applications additionnelles
pas de possibilité de stockage en Flash
pas de connectivité USB
pas de diode examen
pas de mode examen
pas de programmation Python
...
Pour découvrir ce que fut le monde des calculatrices graphiques du temps de la splendeur de Sharp, tu peux utiliser l'émulateur distribué sur le site de Moravia, qui reproduit le fonctionnement d'une EL-9950 en version 1.2.
Dans le cadre du lancement du premier modèle Flash précédent, la EL-9900G SII, d'autres émulateurs avaient été diffusés sur le site de Sharp :
émulateur EL-9900G SII version 1.06
émulateur EL-9900G SII version 1.04
Malheureusement, suite au rachat de la branche Sharp calculatrices, tout le précieux contenu relatif à l'ensemble des calculatrices développées a été supprimé du site de Sharp, et tout n'a pas été repris sur les nouveaux sites conçus par Moravia et par VictorTech.
Aujourd'hui iard nous fait le plaisir de nous partager l'émulateur EL-9900G SII version 1.06, qu'il avait soigneusement conservé.
Le logiciel reproduit donc le fonctionnement d'une EL-9900G SII en version 4.1.
Un beau geste pour la préservation de ce que fut le formidable patrimoine éducatif développé par Sharp et dont les repreneurs n'ont fort tristement rien à faire, bravo !
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 :
Land
Rang/population
WTR
GTR
CAS
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
La simple calculatrice graphique d'entrée ou milieu de gamme que nous connaissons devient donc interdite.
Les calculatrices graphiques haut de gamme peuvent a priori 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, ...).
Précisons toutefois qu'à côté de cela sont interdites les fonctionnalités suivantes :
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)
En Rhénanie-du-Nord-Westphalie, on a décidé de ne pas attendre 2029. Les calculatrices graphiques d'entrée et de milieu de gamme y seront donc autorisées pour la toute dernière fois à la session 2025.
Les nouvelles règles y seront en effet appliquées dès la session 2026 de l'Abitur. Pour accompagner ce changement, le simple calculatrice scientifique sera également autorisée.
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 :
Land
Rang/population
WTR
GTR
CAS
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.
Depuis la rentrée 2020, NumWorks vous sort chaque mois une coque collector en édition limitée pour votre calculatrice. Si vous êtes chanceux(se) et avez su vous montrer assidu(e), alors vous devriez avoir pu vous constituer une formidable collection. En plus des éditions spéciales ci-contre, voici les coques du mois par ordre chronologique :
En ce début de Février, NumWorks vous propose de gagner sa toute nouvelle coque du mois, évoquant l'esprit de la Saint-Valentin :
Pour participer au tirage au sort, c'est très simple ; à partir des liens précédents et d'ici la date limite indiquée, il vous suffit sur le réseau social de votre choix de :
vous abonner au compte du constructeur
aimer la publication
partager la publication sur le même réseau (retweet, story, ...)
répondre en mentionnant 1 ami (tag, identification, ...)
N'hésitez pas à participer sur les différents comptes sociaux associés à votre zone géographique afin de maximiser vos chances.
Since the beginning of the 2020 school year, NumWorks has been releasing a limited edition of cases for your calculator every month. If you're lucky enough, you may have built up a great collection. Here are the cases of the month in a chronological order (without forgetting the special editions):
This month, NumWorks created a special edition of its calculator cases by getting inspired by Valentine's Day. They've made some posts on their social media accounts to announce the beginning of the contests. It's a chance for you to win the special/rare prize
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 goodiesCasio pour tous les autres participants ! Un superbe concours, merci Casio !
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.
J'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... )
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.
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)
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]
# 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()
Voici 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 !
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)
Et 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 !
# 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. =================================="""
"""======================================================== Une horloge facon casion qui affiche 20:22 par Raphael M. ========================================================""" #20:22, clin d'oeil à 2022 ! :-)
"""========================= 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))
# 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))
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 !
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.