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 Hors ligne Administrateur Points: 24239 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, 4, 5, 6, 7, 8, 9, 10 ··· 19, 20, 21 Suivante
Ptitjoz Hors ligne Membre Points: 225 Défis: 10 Message

Citer : Posté le 01/12/2023 18:55 | #


Tuper4 a écrit :
sinon, j'ai une question un peu bete: comment on fais pour ouvrir un fichier python qui est deja sur ma calculatrice par ce que quand je lance l'add in, et j'appuie sur F1, il ne montre pas de fichier. c'est normal?

j'ai une Casio graph 75 mais avant, c'etait une graph 35+e


je ne sais pas si PythonExtra fonctionne sur la graph 75 ou modifié (à priori, je dirais non).

PyhonExtra fonctionne sur Casio graph 35+ EII ou Casio graph 90E

Avec PythonExtra tu ne peux pas créer ou éditer les scripts python, tu ne peux que voir les scripts disponibles avec F1 et les exécuter (ou lancer) avec EXE une fois en surbrillance.

Pour créer/modifier tes scripts python, tu dois repasser par le "menu" et utiliser l'application python standard

Bien à toi
Un peu poète, un peu geek, un peu rêveur, un peu écolo.

Fcalva Hors ligne Membre Points: 521 Défis: 9 Message

Citer : Posté le 01/12/2023 19:14 | #


Sur 35+e il y a pas d'appli standard python, il te faudra donc utiliser un des addins de la commu
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 01/12/2023 19:23 | #


Ok merci
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 01/12/2023 19:32 | #


Si j'utilise le micropython de Zezombye, ça marche?
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Ptitjoz Hors ligne Membre Points: 225 Défis: 10 Message

Citer : Posté le 01/12/2023 19:34 | #


Fcalva a écrit :
Sur 35+e il y a pas d'appli standard python, il te faudra donc utiliser un des addins de la commu


au départ les premiers modèles en étaient dépourvues (du moins je pense), mais avec les mises à jour de Casio Python "standard" est maintenant intégré.
En mode examen python est autorisé et disponible
Un peu poète, un peu geek, un peu rêveur, un peu écolo.

Lephenixnoir Hors ligne Administrateur Points: 24239 Défis: 170 Message

Citer : Posté le 01/12/2023 19:37 | #


Je crois que tu tournes un peu en rond avec les recommandations des uns et des autres Tuper, donc pour clarifier sur 75 il n'y a que CasioPython et donc la quête du module graphique continue... j'ai l'impression qu'il n'y en a pas après avoir regardé de nouveau
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 01/12/2023 19:40 | #


Ok. Sinon DSL

Je vais regarder si je pourrai avoir une 35+e II comme ça je pourrai faire des graphismes avec python. Je remercie tous le monde qui m'a aider MERCI !!
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Ena0 Hors ligne Membre Points: 110 Défis: 1 Message

Citer : Posté le 02/12/2023 12:38 | #


Salut,

est-ce que la fonction dimage de gint/display.h a été implémenté dans pythonExtra, et si oui, où dois-je mettre les sprites et dans quel format ?

Merci
ma capacité a utiliser un forum
   0%


Ptitjoz Hors ligne Membre Points: 225 Défis: 10 Message

Citer : Posté le 02/12/2023 16:10 | #


Ena0 a écrit :
Salut,

est-ce que la fonction dimage de gint/display.h a été implémenté dans pythonExtra, et si oui, où dois-je mettre les sprites et dans quel format ?

Merci

bonjour

pour avoir la liste de toutes les fonctions de gint j'ai fait ce petit script sur ma Casio :

import gint
a=dir(gint)
for i in range(len(a)):
    print(a[i])


Mais je ne vois pas la fonction "dimage" implémentée
Un peu poète, un peu geek, un peu rêveur, un peu écolo.

Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 10/12/2023 11:38 | #


Je me demandais comment la fonction getkey() de gint fonctionne. J'ai essayé comme ça mais ça ne marche pas:


Import gint
If gint.getkey() == "7":
print("tu as appuier sur 7")

(Il y'a un espace avant le "print")
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Lephenixnoir Hors ligne Administrateur Points: 24239 Défis: 170 Message

Citer : Posté le 10/12/2023 17:58 | #


Pour info je compte ajouter les polices et images bientôt... en gros la semaine prochaine si je m'emmêle pas les pinceaux et que ça va assez vite.

La fonction getkey() renvoie un "événement" que tu peux print() pour le voir. Pour faire bref, ce que tu as essayé s'écrit :

import gint

if gint.getkey().key == gint.KEY_7:
  print("touche 7")

(pour info tu as la balise [code]...[/code] pour taper du code dans tes messages sur le forum)
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 11/12/2023 12:03 | #


Ok, Merci beaucoup Lephen
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 11/12/2023 12:07 | #


Et, peut on utiliser Turtle avec PythontExtra?
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Lephenixnoir Hors ligne Administrateur Points: 24239 Défis: 170 Message

Citer : Posté le 11/12/2023 13:06 | #


PythonExtra a casioplot donc avec un peu de chance tu peux prendre le turtle original de CASIO et ça devrait marcher (mais disclaimer j'ai pas essayé). S'il y a des problèmes c'est probablement des bugs, qu'on peut donc corriger.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 11/12/2023 14:06 | #


Ok, j'aissaierrai quand je pourrai. Merci!
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 11/12/2023 15:07 | #


Lephenixnoir a écrit :
Pour faire bref, ce que tu as essayé s'écrit :

import gint

if gint.getkey().key == gint.KEY_7:
  print("touche 7")

Ca ne marches pas. Il me ne renvoie rien.
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Lephenixnoir Hors ligne Administrateur Points: 24239 Défis: 170 Message

Citer : Posté le 11/12/2023 15:15 | #


Il faut probablement le faire en boucle j'imagine ? Il se peut que ça attrape le EXE de quand tu lances le script ou un truc comme ça. Note que quand tu lances le script il doit bloquer en attendant que tu appuies sur une touche. S'il s'arrête tout de suite ça ne va pas.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Genesect Hors ligne Membre Points: 85 Défis: 0 Message

Citer : Posté le 11/12/2023 19:41 | #


Comment utilise t'on getkey dans pythonextra ?
Je ne sais pas comment il s'utilise sur pc non plus.
Fcalva Hors ligne Membre Points: 521 Défis: 9 Message

Citer : Posté le 11/12/2023 19:52 | #


getkey n'existe pas sur pc (enfin dans les libs standard), c'est une fonction de gint implémentée dans PythonExtra; Et pour l'utilisation il y a un exemple au dessus
Pc master race - Apréciateur de Noctua moyen
Caltos : G90+E, FX-92+ (x2)
Genesect Hors ligne Membre Points: 85 Défis: 0 Message

Citer : Posté le 11/12/2023 22:00 | #


ok j'avais pas vu merci
Ptitjoz Hors ligne Membre Points: 225 Défis: 10 Message

Citer : Posté le 12/12/2023 09:26 | #


Bonjour,
ma contribution pour exliquer comment j'utilise le getkey() avec PythonExtra

NB. je n'ai essayé que sur la Casio Graph 35+E II Monochrome


from gint import *

dclear(C_WHITE)
dtext(10,10,C_BLACK,"haut ou bas ou Exit")
dupdate()

while True:  
  k=getkey().key
  
  if k==KEY_UP:
    dclear(C_WHITE)
    dtext(10,10,C_BLACK,"haut")
    dupdate()
  
  if k==KEY_DOWN:
    dclear(C_WHITE)
    dtext(10,10,C_BLACK,"bas")
    dupdate()
    
  if k==KEY_EXIT:
    break

Un peu poète, un peu geek, un peu rêveur, un peu écolo.

Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ··· 19, 20, 21 Suivante

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 59 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