Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » [Bêta] PythonExtra.
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

[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


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


Précédente 1, 2, 3 ··· 10 ··· 19, 20, 21, 22
Ptitjoz Hors ligne Membre Points: 263 Défis: 10 Message

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 :
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

Genesect Hors ligne Membre Points: 112 Défis: 0 Message

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
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Genesect Hors ligne Membre Points: 112 Défis: 0 Message

Citer : Posté le 27/05/2024 22:34 | #


Mais j'avais indiqué sa valeur au debut du programme
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Genesect Hors ligne Membre Points: 112 Défis: 0 Message

Citer : Posté le 27/05/2024 22:37 | #


Je t'enverrai le coupable demain avec les scripts numworks
Genesect Hors ligne Membre Points: 112 Défis: 0 Message

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à
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

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.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Zecter Hors ligne Membre Points: 167 Défis: 0 Message

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é ?
Oui.
Langages appris (pas tous complètement)
Cliquer pour enrouler
- Python
- Java
- Basic Casio
- C
- OCaml

J'ai une Casio Graph 90+E.
Ma citation favorite
Cliquer pour enrouler
« La théorie, c'est quand on sait tout et que rien ne fonctionne.
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
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

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).
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Zecter Hors ligne Membre Points: 167 Défis: 0 Message

Citer : Posté le 05/06/2024 19:25 | #


Ok d'acc merci !
Oui.
Langages appris (pas tous complètement)
Cliquer pour enrouler
- Python
- Java
- Basic Casio
- C
- OCaml

J'ai une Casio Graph 90+E.
Ma citation favorite
Cliquer pour enrouler
« La théorie, c'est quand on sait tout et que rien ne fonctionne.
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
Ptitjoz Hors ligne Membre Points: 263 Défis: 10 Message

Citer : Posté le 14/06/2024 10:47 | #


Lephenixnoir a écrit :
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.
avec la graph35+EII que je prenne small ou medium avec python extra c'est toujours patte de mouches j'ai l'impression que c'est plus petit que le small de python natif de casio
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 30/07/2024 08:22 | #


Yo, un petit up.

Afyu a passé quelques temps à programmer un second jeu en Python qui fonctionne sur de multiples plateforme :
- Numworks (Epsilon et Upsilon avec une version boostée)
- Graph Math+ (avec une version encore plus boostée et plein de graphismes)
- une version Graph 90+E sous PythonExtra 0.30 utilisant à la fois le getkey() des modules NW Ion / kandinski ainsi que le support des routines graphiques améliorée du module gint.

C'est ici que ça se passe : Le jeu WHIS sur la Casio Graph 90+E

Afyu a fait un magnifique boulot pour retranscrire le plus fidèlement possible le petit jeu WHIS de Tales of Eternia sur PSP.
Vous noterez que PythonExtra (et Python standard sur la Graph Math+ avec le support du getkey() ) permet de créer des jeux qui sont dignes d'addins en C.


Je vous invite à tester et à faire vos retour à Afyu.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 08/08/2024 17:36 | #


Quelques notes sur des messages récents que je veux pas perdre :

- ajouter accès aux fonctions RTC pour la date et l'heure (idéalement en module standard, sinon en custom)
- problème de capture vidéo
- taille de police incorrect en medium sur fx
- liste de Ptitjoz : moteur de gris (pas dur), éditeur intégré (dur), émulateur (pourrait émuler l'API PE ou émuler l'add-in lui-même)
- manque de détection d'une erreur de type dans dpoly()
- taquin a besoin d'un chrono et accès au fs

Désolé pour le trou récent, je ramasse mes petits pendant l'été.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ptitjoz Hors ligne Membre Points: 263 Défis: 10 Message

Citer : Posté le 09/08/2024 08:39 | #


Merci Lephe pour ce retour.
Je suis toujours de très près cet addin et actuellement je n'ai pas trop le temps (ni trop le niveau) pour m'attaquer au c/c++
Et comme je n'ai que la graph 35+EII je suis assez limité niveau machine. La nouvelle graph Math+ n'a pas l'air "ouverte" alors je n'ai pas renouvelé mon matériel..

Ça fait un moment que je n'ai pas touché PE mais, de mémoire, la gestion des fichiers ne se fait que dans la version beta de Slyvtt, version qui n'a pas toutes les autres possibilités de la tienne (je ne sais plus lesquelles). Bref, un peu compliqué

Concernant mes besoins, l'éditeur intégré n'est pas du tout une priorité ; le plus, serait un émulateur sur pc car ne développer que sur la calculatrice est un peu pénible ; quant aux niveau de gris, si un jour tu as un peu temps, ça servirait à plus d'un.

Bien à toi et encore merci
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message

Citer : Posté le 09/08/2024 11:32 | #


Perso je trouverais un éditeur intégré très utile, celui du python de casio a une police bien trop grande (sur cg, sûrtout), et est très limitant en terme de taille de fichiers.
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 09/08/2024 12:00 | #


Lephenixnoir a écrit :
Quelques notes sur des messages récents que je veux pas perdre :

- ajouter accès aux fonctions RTC pour la date et l'heure (idéalement en module standard, sinon en custom)
- problème de capture vidéo
- taille de police incorrect en medium sur fx
- liste de Ptitjoz : moteur de gris (pas dur), éditeur intégré (dur), émulateur (pourrait émuler l'API PE ou émuler l'add-in lui-même)
- manque de détection d'une erreur de type dans dpoly()

- taquin a besoin d'un chrono et accès au fs

Désolé pour le trou récent, je ramasse mes petits pendant l'été.


Dans les trucs que je vois qui seraient utiles, notamment via les réalisation de Afyu qui développe beaucoup sur PE ces derniers temps :

- ajout du support unicode dans dtext et dtext_opt, notamment afin d'avoir le support des accents dans le module gint.

- éventuellement ajout du support du \n dans dtext afin de spliter des textes sur plusieurs lignes (il faudrait alors définir une convention sur le centrage en X, d'où le "éventuellement" au debut)

- ajout de format d'images 2 et 4 couleurs sur CG dans les types bopti_image_t : sur python en particulier, avoir un format 2 couleurs (N&B) avec la possibilité de définir via la palette comment assigner ces coulerus lors du tracé serait top. Par exemple on pourrait choisir C_BLACK et C_WHITE pour du N&B, C_BLACK et C_NONE pour du N avec transparence, C_RGB(r,g,b) et C_NONE pour choisir la couleur de tracé. Pour le 4 couleurs, c'est pour gagner de la place dans les scripts, car hardcoder les images en 16 ou 256 couleurs prends vite de la place.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 08/10/2024 12:53 | #


Salut,
Alors j'ai encontré un problème dans un de mes programmes alors je tiens à demander si la fonction .write() est limité?
Plus précisément, est ce que la fonction me laisserra écrire plus que 2048 octets dans un fichier ou c'est limité?
Merci d'avance

EDIT: Euh... finalement ma question n'avait aucun sens vraiment et le problème venait de chez moi...
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Précédente 1, 2, 3 ··· 10 ··· 19, 20, 21, 22

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 71 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd