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: 24579 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 ··· 14, 15, 16, 17, 18, 19, 20, 21, 22 Suivante
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 07/02/2024 09:29 | #


Bug trouvé: quand j'allume PE, je vais dans un dossier et que je sélectionne mon jeu de flappy bird, tout se passe bien. Je joue un peu, et quand je clique sur QUIT dans le menu du jeu, le jeu se termine comme prévu. Quand je revient sur File en appuyant sur F1, et que je appuie sur EXIT pour quitter le dossier et aller a la racine de la calculatrice, il me met Système ERROR et je doit appuié sur EXIT et ça restart la calculatrice. Je ne sais pas si j'ai été clair, si non, dite le moi

Sinon, j'ai une question, PE est codé en C ou en C++? Car j'aimerais bien contribuer au code maintenant que je maîtrise le C a 70%. Si c'est en C++, je ne pourrai pas le faire maintenant car je suis en train de l'apprendre .

Bonne journée
Tuper
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Fcalva Hors ligne Membre Points: 600 Défis: 10 Message

Citer : Posté le 07/02/2024 09:50 | #


En C principalement, mais si tu veux contribuer tu peux surtout le faire en créeant des modules je pense (encore faut il qu'ils soient utiles) .
Pc master race - Apréciateur de Noctua moyen
Caltos : G35+EII, G90+E (briquée )
Ptitjoz Hors ligne Membre Points: 264 Défis: 10 Message

Citer : Posté le 07/02/2024 10:28 | #


Tuper4 a écrit :
Bug trouvé: quand j'allume PE, je vais dans un dossier et que je sélectionne mon jeu de flappy bird, tout se passe bien. Je joue un peu, et quand je clique sur QUIT dans le menu du jeu, le jeu se termine comme prévu. Quand je revient sur File en appuyant sur F1, et que je appuie sur EXIT pour quitter le dossier et aller a la racine de la calculatrice, il me met Système ERROR et je doit appuié sur EXIT et ça restart la calculatrice. Je ne sais pas si j'ai été clair, si non, dite le moi

ça le fait à chaque fois ? peut-être donner à Lephe les codes erreurs qui s'affichent.

Tuper4 a écrit :
Sinon, j'ai une question, PE est codé en C ou en C++? Car j'aimerais bien contribuer au code maintenant que je maîtrise le C a 70%. Si c'est en C++, je ne pourrai pas le faire maintenant car je suis en train de l'apprendre .

Tu maitrises le C à 70% ! bravo. (perso, je suis plutôt à moins de 10% et encore...)
pour contribuer, tu peux déjà aller sur gitea de PythonExtra de Lephe et t'inspirer de tout le travail qui y est fait.

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: 889 Défis: 19 Message

Citer : Posté le 07/02/2024 10:48 | #


Voila une vidéo
Vidéo
Cliquer pour enrouler

Je vais regarder le gitea plus tard

PS: désolé pour mes ongles tout longs
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 07/02/2024 11:27 | #


Sinon, j'ai remarqué que le System ERROR se fais a chaque fois que tu veux quitter un dossier . Tu entres dans un dossier, tu appuie sur EXIT, ça fais l'erreur.
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 07/02/2024 11:34 | #


On est en train de regarder. Je pense que c’est le problème de RAM que traite Lephe en ce moment.

Wait and see de rigueur. Une version sera publiée rapidement avec intégration de diverses news.
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 07/02/2024 11:38 | #


Alors j'en ai hâte de cette news! Sinon je crois bien que c'est la RAM car déja qu'elle et lente, ça na m'étonne pas.
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Ptitjoz Hors ligne Membre Points: 264 Défis: 10 Message

Citer : Posté le 07/02/2024 12:10 | #


Pour Info la version 2024-02-03 gère bien le [SHIFT]+[OFF] mais pas l'auto power off
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 08/02/2024 21:44 | # | Fichier joint


Bon quelques avancées sur PythonExtra, à consolider mais que j'ai pu déjà pas mal tester sur G90+E ces derniers jours.
En effet, depuis quelques temps je suis sur la partie support des scripts Numworks et on commence à avoir un support des scripts nativement sous PythonExtra que je qualifierais de "sérieux".

Voici en vidéo quelques exemples de scripts simples qui montrent le bon fonctionnement des modules "internes" à Numworks, à savoir Kandinsky, Time et Ion.



Je joins une copie du build à jour permettant de faire fonctionner les scripts Numworks si vous voulez tester. J'ai mis une icone et un nom différent à l'addin pour le reconnaître facilement et ne pas le confondre avec les autres builds.

Merci de faire remonter les bugs éventuels que vous croiserez.

La documentation des modules est ici : https://gitea.planet-casio.com/Slyvtt/PythonExtra/src/branch/numworks/docs/sh/NWcompat_modules_fr.md

et vous trouverez qq scripts d'exemples ici : https://gitea.planet-casio.com/Slyvtt/PythonExtra/src/branch/numworks/ports/sh/examples
Ils commencent par cg_NW_
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/02/2024 22:16 | #


PythonExtra commence a être avancé! Je ne peux pas faire le test car je n'ai pas de NW. Mais je soutiens bien ce projet et je suis ouvert a toute aide que vous avez besoin

Tuper
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 09/02/2024 20:57 | #


Un petit Snake par Golem64 initialement pour la Numworks et converti en moins de 5 minutes pour la fxCG-50.
(programme initial ici : https://my.numworks.com/python/golem64/snake)



Ici juste un petit ajustement au niveau du keydown() qui passait par le numéro des touches au lieu de leur nom.
2 lignes de code à changer et zou !!! Et ça roule nickel.

On devrait pouvoir se faire une petite bibliothèque de jeux Python qui va être sympa
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Le_masque Hors ligne Membre Points: 87 Défis: 0 Message

Citer : Posté le 09/02/2024 21:07 | #


Salut, ça m'a l'air vraiment bien ! Aurait tu le code modifier ? Donc si j'ai bien compris il tourne nickel sous G90 ? Avec Python Extra ?
Lephenixnoir En ligne Administrateur Points: 24579 Défis: 170 Message

Citer : Posté le 09/02/2024 22:16 | #


SlyVTT a écrit :
Ici juste un petit ajustement au niveau du keydown() qui passait par le numéro des touches au lieu de leur nom.

Et pourquoi c'était nécessaire ? On devrait juste convertir les numéros.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Le_masque Hors ligne Membre Points: 87 Défis: 0 Message

Citer : Posté le 09/02/2024 22:53 | #


Je voudrais bien ce code et le seul lien que je voit ne marche pas pour moi
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 09/02/2024 23:19 | #


Lephenixnoir a écrit :
SlyVTT a écrit :
Ici juste un petit ajustement au niveau du keydown() qui passait par le numéro des touches au lieu de leur nom.

Et pourquoi c'était nécessaire ? On devrait juste convertir les numéros.


Oui en y réfléchissant c’est possible de faire sans rien modifier. Je regarderai ça pour avoir un support a 100%
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Le_masque Hors ligne Membre Points: 87 Défis: 0 Message

Citer : Posté le 09/02/2024 23:33 | #


Slyvtt

Ce serait posible d’avoir le fichier directement car le lien ne marche pas pour moi
Cordialement
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 10/02/2024 11:01 | # | Fichier joint


Voilà en pièce attachée la dernière version en date compilée qui reprend les toutes dernières updates pour la partie Numworks.
J'ai réussi à mettre en place un système de conversion des touches entre le nom Numworks et Casio/gint.

Le mapping des touches est donné ici : Listing des touches Ion et correspondance avec Casio

keydown( ) peut donc être désormais appelé soit par le nom de la touche (KEY_xxx) ou bien par son numéro que vous trouverez dans le tableau de la doc précédente. Logiquement les contrôles d'erreurs sont prévus (car NW a eu la bonne idée de ne pas faire une numérotation continue, je pense que c'est prévu pour un clavier étendu à la base et quelques touches ont dû disparaître au fil des évolutions de design).

J'ai remis aussi à plat les exemples et dans le fichier ZIP attaché vous trouverez les examples Snake et PacMan dans deux versions :
- une version gc_NW_ pour profiter de quelques features en plus sur Casio (écran large)
- ne version origin qui est juste le copier coller du script, pour montrer que c'est "aussi simple que ça" de faire tourner un script Numworks sur Casio désormais.

Voilà la vidéo du PacMan (j'ai posté le Snake hier un peu plus haut) :


Comme d'habitude, merci de faire remonter les éventuels bugs et surtout les explications sur comment le reproduire (ça aide beaucoup pour les résoudre).

Le g3a s'appelle PyExtraNW et l'icone a un petit "βNW" dans un coin et porte le nom "PyExtra_NW" pour bien l'identifier, car c'est à considérer comme un snapshot à ce stade.

Amusez vous bien (et vous pouvez aussi partager des scripts si le cœur vous en dit).
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Le_masque Hors ligne Membre Points: 87 Défis: 0 Message

Citer : Posté le 10/02/2024 11:31 | #


Salut, est ce que la version de Python extra que tu a envoyé remplace l'autre ou pas ? Ou alors il vaut mieux garder les deux ?
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 10/02/2024 11:31 | #


Oui cette version remplace et annule la précédente.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 11/02/2024 17:18 | #


Les amis, voilà ce qu'avec beaucoup de patience et de talent arrive à créer Afyu avec PythonExtra et les modules Kandinsky/Ion de la Numworks une fois transférés sur la fx-CG50 et ses capacités supérieures.



Il s'agit de la transcription sur calculatrice du mini jeu Orlog de Assassin's Creed Valhalla.

Je pense que c'est la preuve en images du potentiel qu'a PythonExtra sur notre petite Casio.

Pour info, Afyu travaille encore sur son jeu pour le rendre encore meilleur. Votre humble serviteur ne mettant à disposition que les versions de PythonExtra fonctionnelles pour servir de moteur au fonctionnement.

(PythonExtra build du 10/02/2024 - mode PE_DEBUG avec screen capture via fxlink - sans overclock sur fxCG50)
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 12/02/2024 22:00 | #


Désolé pour demander mais il y a quoi qui est en priorité? Genre, le moteur de gris est combientième dans la list? Car je l'attend impatiemment . Et il y a quoi autre dans la TODO list? Car celle de gitea ne semble pas être complète .

Merci d'avance
Tuper
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Précédente 1, 2, 3 ··· 10 ··· 14, 15, 16, 17, 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 94 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