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: 24432 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 ··· 18, 19, 20, 21, 22 Suivante
Ptitjoz Hors ligne Membre Points: 259 Défis: 10 Message

Citer : Posté le 29/04/2024 20:37 | #


d'accord, je vais attendre mais il n'y a pas d'urgence.
Faudrait que je retrouve le le module de sly
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: 2354 Défis: 17 Message

Citer : Posté le 30/04/2024 14:46 | #


Salut Ptitjoz,
tu peux retrouver le fichier de la dernière version béta avec support du FS sur monochrome ici : https://www.planet-casio.com/Fr/forums/topic17202-19-beta-pythonextra.html#196282.
@+
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Ptitjoz Hors ligne Membre Points: 259 Défis: 10 Message

Citer : Posté le 02/05/2024 09:18 | #


Slyvtt a écrit :
Salut Ptitjoz,
tu peux retrouver le fichier de la dernière version béta avec support du FS sur monochrome ici : https://www.planet-casio.com/Fr/forums/topic17202-19-beta-pythonextra.html#196282.
@+

merci du lien, open fonctionne
par contre, je ne trouve pas time()
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

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

Citer : Posté le 12/05/2024 08:57 | #


C'est quoi la fonction pour faire des parallélogrammes ou pour faire des polygones ?
Genesect Hors ligne Membre Points: 105 Défis: 0 Message

Citer : Posté le 12/05/2024 08:57 | #


Rempli
Lephenixnoir Hors ligne Administrateur Points: 24432 Défis: 170 Message

Citer : Posté le 12/05/2024 09:38 | #


Il y a la fonction gint.dpoly() (qui n'est pas encore dans la doc malheureusement).

from gint import *
dpoly([x1, y1, x2, y2, x3, y3, ...], fill_color, border_color)

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Genesect Hors ligne Membre Points: 105 Défis: 0 Message

Citer : Posté le 12/05/2024 09:56 | #


Ok merci
Genesect Hors ligne Membre Points: 105 Défis: 0 Message

Citer : Posté le 12/05/2024 13:24 | #


J'ai un 'dpoly isn't defined'

Version trop vieille de Python extra ?
Lephenixnoir Hors ligne Administrateur Points: 24432 Défis: 170 Message

Citer : Posté le 12/05/2024 13:31 | #


Euh tu as bien importé tout gint, genre from gint import *, en utilisant la dernière release ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Genesect Hors ligne Membre Points: 105 Défis: 0 Message

Citer : Posté le 12/05/2024 13:33 | #


Je vais essayer avec la dernière version...
Genesect Hors ligne Membre Points: 105 Défis: 0 Message

Citer : Posté le 12/05/2024 13:46 | #


C'est bon ! J'avais juste pas la bonne version !
Ptitjoz Hors ligne Membre Points: 259 Défis: 10 Message

Citer : Posté le 17/05/2024 09:44 | #


Bonjour
sur la graph 35+EII , est-il possible avec Python Extra de choisir la taille des caractères affichés par dtext() ou dtext_opt() sans passer par casioplot ?

j'ai bien vu dans la doc qu'il y a des fonctions dsize() et dfont() mais je ne sais pas si c'est implémenté ou si ça le sera

Merci
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

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

Citer : Posté le 17/05/2024 09:46 | #


C'est prévu, dans le même style que les images, mais pas encore implémenté. Note qu'une fois codé il faudra que tu fournisses ta police sous la forme d'une image dans ton programme (donc un truc à convertir + un gros tableau de bytes à importer) ; je mettrai des liens vers des polices existantes dans différents projets.

Je fournirai aussi quelques polices par défaut mais rien de super créatif.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2354 Défis: 17 Message

Citer : Posté le 17/05/2024 10:27 | #


Ptitjoz, comme je vois que tu sembles beaucoup utiliser PythonExtra, peux tu nous faire un retour sur ton utilisation ?
Trouves tu chaussure à ton pied dans les développements récents ? Vois tu des choses qui manquent par rapport au Python officiel ?

Je note que tu as qq demandes supplémentaires, on a une "pseudo roadmap" de développement, mais n'hésite pas à dresser ta liste au Père Noël.

Merci à toi pour l'utilisation et n'hésite pas à demander des infos et/ou des fonctionnalités quand tu en as besoin.

PS : j'ai été pas mal AFK ces derniers temps, mais je vais reprendre un peu plus de service dans les jours qui viennent.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Ptitjoz Hors ligne Membre Points: 259 Défis: 10 Message

Citer : Posté le 17/05/2024 18:49 | #


Lephenixnoir a écrit :
C'est prévu, dans le même style que les images, mais pas encore implémenté. Note qu'une fois codé il faudra que tu fournisses ta police sous la forme d'une image dans ton programme (donc un truc à convertir + un gros tableau de bytes à importer) ; je mettrai des liens vers des polices existantes dans différents projets.

Je fournirai aussi quelques polices par défaut mais rien de super créatif.

Merci d'avance mais il n'y a absolument pas d'urgence

sinon je me suis amusé à essayer d'afficher les caractères
avec casioplot en natif python Casio (hors PE)


et avec casioplot + python extra


on voit que la qualité est fortement dégradé. Une explication ?

Merci
Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

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

Citer : Posté le 17/05/2024 18:55 | #


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

Citer : Posté le 17/05/2024 19:02 | #


je n'avais rien précisé. Donc small par défaut. Si je mets "small" ou "medium" , ça ne change rien dans les 2 cas
Edit je rajoute le code
from casioplot import *
from gint import *
dclear(0)
c=27
for x in range(26):
  for y in range(8):
     c=c+1
     draw_string(x*8,y*8,chr(c))
     #draw_string(x*8,y*8,chr(c),(0,0,0),"medium")
     #draw_string(x*8,y*8,chr(c),(0,0,0),"small")
     dupdate()
k=getkey()

Un peu poète, un peu geek, un peu rêveur, un peu écolo.
https://joz.alwaysdata.net/info/

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

Citer : Posté le 20/05/2024 10:08 | #


Slyvtt a écrit :
Ptitjoz, comme je vois que tu sembles beaucoup utiliser PythonExtra, peux tu nous faire un retour sur ton utilisation ?
Trouves tu chaussure à ton pied dans les développements récents ? Vois tu des choses qui manquent par rapport au Python officiel ?

Je note que tu as qq demandes supplémentaires, on a une "pseudo roadmap" de développement, mais n'hésite pas à dresser ta liste au Père Noël.

Merci à toi pour l'utilisation et n'hésite pas à demander des infos et/ou des fonctionnalités quand tu en as besoin.

PS : j'ai été pas mal AFK ces derniers temps, mais je vais reprendre un peu plus de service dans les jours qui viennent.


Merci Slyvtt pour ton message.
en réalité je n'utilise pas tant que ça Python Extra. du moins à mon avis.
Pour faire simple j'ai toujours aimer "programmer" et j'ai touché à pas mal de langages (Basics divers, Pascal (Delphi, Lazarus), un peu ce C, très peu d'assembleur (sur 386), SQL pour des Bases de données, Javascript, un peu de PHP et depuis peu Python sur PC et un peu de Python sur Casio.
Pour revenir à Python sur Casio ce que j'aime c'est ça rapidité (par rapport à Basic il n'y a pas photo), qu'on peut programmer un peu n'importe où, sans être encombré (dans le train par exemple)

J'ai hésité à acheter un 90E (d'occasion ?) car un peu chère et en fin de vie ? j'attends de voir ce que sera la Casio Math+ mais j'ai l'impression qu'elle sera moins bien (moins puissante et fermée) mais je me trompe peut-être

Pour l'instant je continue avec ma Casio 35+EII même si elle est un peu trop juste en mémoire et en taille écran. mais elle me permet d'apprendre un peu.

Concernant PE je tiens à remercier tous ceux qui travaillent sur ce gigantesque projet Lephe, toi et d'autres
Les avantages d'utiliser ce langage est qu'on est pas (toujours) obligé de développer sur PC et transférer sur la machine.

La rapidité est suffisante pour faire des choses sympas (et si on utilise Ftune ou Ptune on peut aller au delà)
les premiers ajouts ont été importants ne serait-ce que dline() qui n'existait même pas en python Casio
le fait de pouvoir mettre dans des répertoires séparés des programme permet de mieux s'organiser
l'ajout de getkey et time() ont ouvert les possibilité de développement presque inattendues ainsi que d'autres fonctions (accès aux fichiers (open r/w), aux images, etc. etc.

pour revenir au père Noël, je n'y crois plus depuis longtemps
à mon avis ce qui manque à python Extra serait pour les nouveaux venus et même les anciens d'avoir sur le site une page dédiée et des sous pages pour y retrouver une documentation indexée pour y retrouver les différentes instruction plutôt que d'aller fouiller dans les branches de git) et dans l'interminable post où je suis en train décrire

* personnellement j'aimerais avoir le moteur de gris ...

* un éditeur intégré à PE pour ne pas faire la gymnastique de passer par l'éditeur de Casio et revenir dans PE
* un catalogue des fonctions
* et pour pour parfaire le tout, un émulateur sur pc uniquement pour PE
j'ai commencé un truc mais pas vraiment abouti....

voila je ne sais pas si j'ai répondu à tes questions (ou si j'ai fait du hors sujet...)

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

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

Citer : Posté le 20/05/2024 12:23 | #


A propos du dernier point que tu as fais, j'ai commencé avant-hier a faire la même chose :d sauf que j'utilise pygame. J'ai que fais 3 fonctions en ce moment (drect dupdate et dclear), Par ce que je trouve assez ch*ant de transférer le fichier sur la calculatrice a chaque fois que tu fais un changement. (Et d'ailleurs, j'utilise le micropython de Zezombye pour éditer sur calculatrice).

Et je te remercie pour ton post intéressant et détaillé
Tuper
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Slyvtt Hors ligne Maître du Puzzle Points: 2354 Défis: 17 Message

Citer : Posté le 20/05/2024 14:53 | #


Salut,
Merci à tous les deux. Oui c'est parfait comme réponse. L'éditeur "in-calc" serait en effet un gros gros plus afin de pouvoir modifier les scripts à la volée. C'est un truc qu'on a en tête.

On a aussi pensé peut être mettre un mode "USB" dans PE afin de pouvoir balancer en live des fichiers depuis un PC sans avoir à sortir, connecter avec Link etc ...

Pour l'overclock, on pourrait avoir une activation depuis PE directement via un menu, c'est très facile, on a tout pour faire dans gint.

C'est important d'avoir des retours d'utilisateurs afin de savoir ce qui fonctionne bien et ce que les utilisateurs aimeraient en plus.

A plus
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Ptitjoz Hors ligne Membre Points: 259 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/

Précédente 1, 2, 3 ··· 10 ··· 18, 19, 20, 21, 22 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 248 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