Page 1 sur 1

Vainqueur catégorie élève-collège concours Noël 2022 Casio

Message non luPosté: 03 Fév 2023, 17:40
de critor
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 !
Code: Tout sélectionner
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
Consulter

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 !

Re: Vainqueur catégorie élève-collège concours Noël 2022 Cas

Message non luPosté: 03 Fév 2023, 17:58
de cent20
Orlando, tu ne veux pas étudier la spé NSI à Avignon ? 👀

Re: Vainqueur catégorie élève-collège concours Noël 2022 Cas

Message non luPosté: 04 Fév 2023, 10:22
de _Orlando_
C'est un peu loin Avignon pour moi :p

Mais il y a aussi la spé NSI dans mon lycée, que je vais choisir l'année prochaine.

Je vais me régaler je pense :)

Re: Vainqueur catégorie élève-collège concours Noël 2022 Cas

Message non luPosté: 04 Fév 2023, 13:09
de SlyVTT
Bravo _Orlando_

de la génération procédurale sur fx92 ;) C'est très très malin ça.
Bravo à toi encore une fois et profite de ton cadeau bien mérité.

Re: Vainqueur catégorie élève-collège concours Noël 2022 Cas

Message non luPosté: 10 Fév 2023, 08:27
de cirekraft
Bonjour à tous,

Pour compléter je propose une version hors-concours pour la CASIO fx-92+ Spéciale Collège avec ce petit visuel :

repas.png
Un copieux repas
repas.png (5.8 Kio) Vu 2078 fois


Je suis resté avec l'idée du programme décrit dans ma vidéo Mini-jeu CASIO fx-92+ : dessins anti-stress, à savoir compter ligne par ligne le nombre de pixels noirs puis d'espaces à mettre. Il y a au total 888 nombres à saisir pour l'image complète (qui fait 190x40 pixels) !!

Code: Tout sélectionner
0 →B
Aller à x= -95 , y= 22
Répéter jusqu'à  1=0
? →A
Si A=-1 Alors
  Aller à x= -95 , y= y-1
  0 →B
Sinon
  Si B=0 Alors
   Stylo écrit
   Avancer de A-1 pixels
   Stylo relevé
   Avancer de 1 pixels
  Sinon
  Stylo relevé
  Avancer de A pixels
Fin
1-B →B
Fin


On pourrait optimiser le codage (exemple en utilisant un programme Python écrit par @Critor) mais il y a une autre solution... ne pas taper soi-même les 888 nombres !! Alors non je n'ai pas fait appel à de petites mains, mais à Excel.

En effet, sous Windows uniquement, il est possible d'envoyer via la commande SendKeys la simulation d'une touche du clavier. Voici la macro :

Code: Tout sélectionner
Sub repas()
Application.Wait Now + #12:00:05 AM#
For Each cellule In Selection
SendKeys cellule.Value & "~"
Application.Wait Now + #12:00:01 AM#
Next
End Sub


Le premier #12:00:05 AM# me laisse 5 secondes entre le moment où je lance la macro et le changement de fenêtre pour aller vers l'émulateur de la fx-92+.
Ensuite chaque seconde (#12:00:01 AM#) Excel simule les valeurs indiquées dans la plage de cellules qui contient les 888 nombres. Le "~" est le code pour la touche Entrée.

Si vous vous ennuyez je vous mets la vidéo complète de 15 minutes ici.

Et pour les 888 nombres, ils ont été générés par un petit script Python sous Gimp assez basique :

Code: Tout sélectionner
def dessin():
    img = gimp.image_list()[0]
    drw = pdb.gimp_image_active_drawable(img)
    L = pdb.gimp_image_width(img)
    H = pdb.gimp_image_height(img)
    for y in range(H):
       c = 0
       blanc = False
       for x in range(L):
            v = list(pdb.gimp_image_pick_color(img,drw,x,y,1,0,0))[:-1]
            if sum(v) == 0:
               if blanc:
                  print c
                  blanc = False
                  c = 1
               else: c = c + 1
            elif not(blanc):
               print c
               blanc = True
               c = 1
            else: c = c + 1
       print(c)
       print(-1)

Re: Vainqueur catégorie élève-collège concours Noël 2022 Cas

Message non luPosté: 10 Fév 2023, 09:25
de _Orlando_
Bonjour Schraf,
j'aime beaucoup ton dessin. :)

Mais je sais que l'on peut recréer cet écran avec moins de 888 nombres :
Si tu sépare tes 888 nombres en suites de 39, ça te fait 22 suites de 39 et une de 30.
Le problème, tu le sais sûrement, c'est que la calculatrice ne se rappelle que des 12 premiers chiffres dans les grands nombres.
Ce que l'on peut faire, c'est transformer les 39 chiffres binaires en un nombre décimal, qui fera exactement (dans mes souvenirs) 12 chiffres de long.
Après, il ne reste plus qu'à modifier ton programme pour qu'il transforme d'abord le décimal en binaire, puis dessine le binaire.

En tout, avec cette technique, il ne te faudra entrer qu'un nombre à 12 chiffres 23 fois.

Si tu veux voir un exemple, voici le programme que j'ai fait pour le concours Casio Noël 2021, où j'utilise la même technique à part que les nombres ne sont pas à taper mais dans des variables :
http://ti-pla.net/a2861187

Merci à ptitjoz pour m'avoir donné cette technique. ;)

Re: Vainqueur catégorie élève-collège concours Noël 2022 Cas

Message non luPosté: 10 Fév 2023, 19:19
de cirekraft
Je mets ci-dessous des codes utilisant l'idée de convertir chaque colonne (je me suis limité à 40 px) en binaire (0 = noir, 1 = blanc) ce qui donne un nombre décimal sur 12 chiffres max. Par exemple 0 donnera une colonne noire.

Partie Gimp en utilisant une image en noir & blanc de 190 x 40 px (on obtiendra donc 190 nombres puisque 190 colonnes) :

Code: Tout sélectionner
def gimp2fx92():
   img = gimp.image_list()[0]
   drw = pdb.gimp_image_active_drawable(img)
   L = pdb.gimp_image_width(img)
   H = pdb.gimp_image_height(img)
   for x in range(L):
    for y in reversed(range(H)):
      v = sum(list(pdb.gimp_image_pick_color(img,drw,x,y,1,0,0))[:-1])
      c = (v != 0) if y == H - 1 else 2 * c + (v != 0)
    print c


Script sur la fx-92+ Spéciale Collège :

Code: Tout sélectionner
-95 →B
S'orienter à -90
Répéter jusqu'à  B=95
Aller à x= B , y= 22
? →A
B + 1 →B
Répéter 40
   A ÷ 2 →A
   Si A = Ent(A)
    Stylo écrit
    Avancer de 0 pixels
   Fin
   Stylo relevé
   Avancer de 1 pixels
   Ent(A) →A



La difficulté pour la macro est d'estimer le temps d'attente entre la saisie de chaque nombre. J'ai remarqué que la clé USB CASIO était plus lente lorsque l'on utilise l'émulateur en étant connecté à Internet donc j'ai débranché câble et coupé Wifi de l'ordinateur. Il faut compter une dizaine de secondes pour tracer une colonne, j'ai mis 12 secondes ce qui fait 12 * 190 = 38 minutes pour avoir le dessin... Il faudrait que la macro estime le temps de traçage en fonction du nombre de traits qu'il y aura à tracer.

J'ajoute également cette version Python qui permet de vérifier le rendu final sur une NUMWORKS ou autres.

Image

masques.png
Masques en 190x40 px
masques.png (3.62 Kio) Vu 2005 fois

Re: Vainqueur catégorie élève-collège concours Noël 2022 Cas

Message non luPosté: 10 Fév 2023, 19:26
de Acrocasio
Ouah, merci Schraf, grâce à vous, on peut avoir des images de très bonne qualité sur la FX 92 SC 🤩

J'en parlerai dans mon journal 👍