[Bêta] PythonExtra.
Posté le 29/10/2022 09:49
PythonExtra est un add-in Python alternatif pour (à ce stade) Graph 35+E II, Prizm et Graph 90+E. L'objectif est de fournir plus de fonctionnalités : modules standard,
getkey(), fonctions de dessin plus performantes, etc.
Version Bêta 0.2
Graph 35+E II /
Prizm /
Graph 90+E : PythonExtra-pe-0.2.0-beta.zip
![](/storage/forums/pe-17202.png)
Aperçu de PythonExtra sur Graph 90+E. (Cliquez pour agrandir)
Description sommaire des fonctionnalités :
- Compile pour Graph 90+E (fx-CG 10/20/50) et Graph 35+E II (fx-9860G III)
- Peu de RAM sur Graph 35+E II (c'est difficile d'en trouver sur ce modèle)
- Un shell pas trop mal (saisie rapide, scrolling) avec de bonnes performances
- Plein de modules standard
- array, builtins, cmath, collections, io, math, random, struct, sys, time
- Le module spécifique CASIO : casioplot (fidèle à part sur les polices)
- Un nouveau module gint avec les fonctionnalités avancées de gint :
- Pour l'instant, une bonne partie de <gint/display.h> et <gint/keyboard.h>
- Donc getkey() (attente de touche) ainsi que keydown() (test instantané) !
- Et des fonctions de dessin rapides comme dline() ou drect()
Le plan actuel :
- Être sensiblement compatible avec l'appli Python officielle.
- Pousser les fonctionnalités ajoutées pour vraiment relever le niveau de Python !
- Si du temps de développement se débloque : support autres Graph mono (pas de promesses).
Updates et screenshots à venir. Je n'ai pas l'intention d'implémenter un million de fonctionnalités, juste ce qu'il faut pour s'assurer que ça ne finisse pas mal documenté et non maintenu comme CasioPython.
Dépôt Git :
https://gitea.planet-casio.com/Lephenixnoir/PythonExtra
PythonExtra est notamment possible grâce à l'aide précieuse de
Mb88.
Comparaison directe
Dans l'exemple ci-dessous (
réalisé par Mb88), un Flappy Bird déjà bien optimisé (dessin partiel etc, à gauche) est accéléré un bon gros coup en utilisant PythonExtra et le module
gint pour le dessin (à droite).
Contexte historique
Aux
journées APMEP 2022, redgl0w racontait comment le port MicroPython pour Numworks n'était finalement pas super difficile. Moi je parlais de comment un port maison résoudrait le problème de
getkey(), et Critor m'a convaincu d'essayer sur-le-champ.
En fin de compte, j'ai clôné MicroPython Dimanche à midi et à 1 heure du matin j'avais un port fonctionnel avec
getkey() sur ma Graph 90+E (que j'ai d'ailleurs montré à CASIO Lundi, pour la démo). Comme quoi, des fois ça marche tout seul !
(Enfin, le début marche tout seul. Faire une bonne UI et gérer tous les détails ensuite c'est une autre paire de manches !)
Fichier joint
Citer : Posté le 23/05/2024 12:22 | #
je ne sais pas si ce post à un intérêt quelconque
j'ai fait une erreur de syntaxe dans dpoly()
dpoly((x1,y1,x2,y2,x3,y3,x4,y4)),0,3)
j'ai mis des parenthèses à la place de crochets et là l'addin plante.
je m'attendais plus à un SyntaxError :
https://joz.alwaysdata.net/info/
Citer : Posté le 27/05/2024 22:30 | #
J'ai essayé certains jeux numworks trouvé sur tiplanet sur PE, certains ne fonctionnent pas, d'autres méritent des petites améliorations graphiques et du module Time pour être jouable.
Sinon comment on fait pour modifier une variable a partir d'elle même(par exemple : X=X+20) quand on est dans un try:
Except keyboard interrupt ?
Ça me met local variable referenced before assignment
Merci d'avance
Citer : Posté le 27/05/2024 22:33 | #
Coucou, si tu as des descriptions un peu plus précises des soucis (idéalement avec une copie du programme) je pourrai regarder.
Tu peux écrire x=x+20 dans n'importe quelle situation y compris dans un try/except, mais il faut que x ait été initialisée précédemment. L'erreur que tu as indique que x a été utilisée (dans le calcul de x+20) sans jamais avoir reçu de valeur.
Citer : Posté le 27/05/2024 22:34 | #
Mais j'avais indiqué sa valeur au debut du programme
Citer : Posté le 27/05/2024 22:36 | #
Mes pouvoirs de divination s'arrêtent là, mais je peux prédire la source du bug pour le modeste sacrifice d'une copie du programme fautif.
Citer : Posté le 27/05/2024 22:37 | #
Je t'enverrai le coupable demain avec les scripts numworks
Citer : Posté le 28/05/2024 21:49 | #
J'ai trouvé le problème, c'était juste que je l'avais mis dans un def sans signaler def(X)
, voici les liens des scripts numworks :
https://tiplanet.org/forum/archives_voir.php?id=2731974
https://tiplanet.org/forum/archives_voir.php?id=2651243
Voilà voilà
Citer : Posté le 04/06/2024 19:34 | #
Hello, pour votre info, Afyu a créé un petit article sur son jeu Orlog et notamment la version PythonExtra ici : Le jeu Orlog sur la Casio Graph90+E
Il est question de la version ultime du jeu fonctionnant sur PythonExtra Beta 0.3.0 via les modules de compatibilité NW.
Citer : Posté le 05/06/2024 18:20 | #
Hey ! Je passe ici vite fait et je dit : est-ce que le fichier python colrconv.py que l'on peut voir dans la première image est celui que j'ai codé ?
- Java
- Basic Casio
- C
- OCaml
J'ai une Casio Graph 90+E.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique :
Rien ne fonctionne... et personne ne sait pourquoi ! »
- Albert Einstein
Remerciemembres
Citer : Posté le 05/06/2024 18:27 | #
Je ne me souviens pas précisément, mais je ne crois pas l'avoir écrit. Donc probablement oui, une ancienne version en tous cas (il est plus petit que la version actuelle).
Citer : Posté le 05/06/2024 19:25 | #
Ok d'acc merci !
- Java
- Basic Casio
- C
- OCaml
J'ai une Casio Graph 90+E.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique :
Rien ne fonctionne... et personne ne sait pourquoi ! »
- Albert Einstein
Remerciemembres
Citer : Posté le 14/06/2024 10:47 | #
Tu as pris la police small non ? Dans l'appli officielle les tailles moyenne et petite sont identiques. gint utilise cette police-là au niveau moyen et un truc un peu pattes de mouche au niveau petit.
https://joz.alwaysdata.net/info/