
D'une part, le MicroPython de ta calculatrice utilise 3 types de mémoire avec les rôles suivants :
- la mémoire de stockage qui accueille et conserve tes scripts Python
- le stack (pile) qui, à l'exécution, accueille les références vers les objets Python créés
- le heap (tas) qui, à l'exécution, accueille les valeurs de ces objets Python
A moins d'avoir de gros besoins en terme de données ou de récursivité, le facteur limitant pour tes projets Python sur calculatrice est habituellement le heap / tas.
Or depuis la version 13.2.0, le heap / tas Python de ta NumWorks a doublé, passant de 16K à 32K.

D'autre part, la version 13.1.0 a introduit en Python un nouveau module ion permettant de tester les appuis de touches.
Cela devrait t'être fort utile pour coder tes jeux et interfaces de menus !

C'est quoi un jeu ? Algorithmiquement, on peut le définir en tant que boucle qui répère 3 choses à l'infini :
- lecture des entrées (clavier, souris, joystick, tactile, réseau...)
- traitement avec mise à jour des variables codant l'état du jeu
- mise à jour de l'affichage



Grand fan du Python, cent20 a poussé Arthur_Jacquin à nous commencer bien évidemment par un Snake, le jeu du serpent, dont voici ci-contre l'interface de lancement.
Grâce au nouveau module ion, les touches fléchées te permettent intuitivement de sélectionner et modifer les différentes options, et on apprécie également l'affichage d'une aide avec les touches à utiliser ainsi que du nom du jeu et de l'auteur.








Car en effet, c'est littéralement une bibliothèque très complète d'interface de lancement de jeu que cent20 et Arthur_Jacquin t'ont développée, et que tu peux réutiliser clé en main pour tes propres jeux !

Il te suffit de lui fournir dans l'ordre :
- titre du jeu
- texte du bouton de lancement
- des listes comportant un nom suivi de une ou plusieurs valeurs qui te permettent astucieusement de traiter par exemple :
- aussi bien les choix disponibles pour une ou plusieurs options
- que l'affichage des différentes touches de contrôle, défilable de la même façon qu'une option avec les touches fléchées
- ou encore l'affichage des différents auteurs, là encore défilable de la même façon


Par exemple, voici l'appel correspondant au jeu Snake :
- Code: Select all
mode, dif, bor = menu("SNAKE",
"Lancer la partie",
["Mode", "Classique", "Dingue"],
["Difficulté", "Moyen", "Difficile", " Extrême",
"Facile"],
["Bordures", "Mortelles", "Téléportation"],
["Commandes", " Nav: Flèches", "Menu: HOME",
"Rejouer: OK"],
["Crédits","Arthur J.","Vincent R."])
Mais pas de défilement vertical par contre à ce jour si on spécifie plus de 5 listes nom+valeurs. Peut-être pour une prochaine fois ?


- Code: Select all
mode, ope, dif, rep = menu("Automatismes en calcul mental",
"Calculer [OK]",
["Mode", "Classique", "Rapide"],
["Opération(s)", "+", "-", "x", "/", "+ -",
" x / ", "+ - x", "+ - x /"],
["Difficulté", " modéré", "difficile",
"expert", "facile"],
["Répétition", 42, 50, 100, 120, 20],
["Crédits", "Site web$nsi.xyz/calcul",
"Auteur$Kevin Fedyna",
"Contributeur$Vincent ROBERT"])

N'hésite pas à aller consulter ci-dessous les pages de ces 3 projets, débordantes de détails passionnants à dévorer.
Et en attendant ta prochaine création, jusqu'à combien arrives-tu à faire grandir ton serpent ?

Liens :
- Un menu en python pour les jeux sur la numworks
- Un Snake codé en python pour la NumWorks
- Un générateur aléatoire de calcul mental en python pour la NumWorks
Téléchargements :
- menu (vierge - à importer et appeler correctement pour tes projets)
- menu (démonstration)
- Snake
- Calcul Mental