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 » [BETA] Gint++
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

[BETA] Gint++

Posté le 09/02/2024 15:22

voila le Lien du projet
voila le Dépot Gitea

Je suis actuellement en train de travailler sur un projet que j'appelle(avec l'accord de Lephenixnoir) gint++.

Le projet sera un fichier python qui offrira plus de fonctionnalité de graphismes pour gint. Les fonctions sont juste en réalité plusieurs fonctions de gint pour faire une image.
Pour l'utiliser, tu n'as qu'a faire
from gintpp import *
au début de ton code .
Ce projet est inutilisable sans PythonExtra puisqu'il utilise gint.

Je suis ouvert aux questions et si vous avez des autres idées, mettez les en commentaires s'il vous plaît .
Fonction fini:
Cliquer pour enrouler
dlimage(x,y,list,couleur)
Cliquer pour enrouler
dlimage sera sous cette forme:
dlimage(x,y,list,couleur)
. Voici a quoi servent tous ces paramètres:
  • x et ysont les coordonnées du coin de l'image en haut a droite.
  • la list doit ressembler a ça:
    img = [
    "#   #",
    "#####"
    ]
    Cette image sera une sorte de but et ressemblera a ça: |___|.
  • taillex et tailley dans le cas du but sera alors:
    taillex = 5
    tailley = 2
    car il y a 5 caractères par lignes et il y a 2 caractères par colonnes.
    la fonction trouve la taille toute seule maintenant .
  • couleur1 est la couleur des 0 et couleur2 est la couleur des #il n'y a plus qu'une seule couleur a mettre et ce sera la couleur du #, tu dois juste mettre un espace au lieu d'un 0 et sa couleur sera du blanc

Cette fonction est la version améliorée de dimage() (désolé Lephe' ^^"). Maintenant regardons les pour et les contres:
plus facile a éditer
plus facile a comprendre
ne peux que faire deux couleurs
ne peux pas être très bien bien utilisé pour Graph 90+E a cause de ses plus petits pixels que les monochromes

dmenu(titre,liste,version)
Cliquer pour enrouler
cette fonction te permet de faire un menu assez beau en beaucoup plus rapidement. Le paramètre "titre" est le string qui seras affiché en gros sur le menu (et il est automatiquement centré ).
Le deuxième paramètre "liste" sera la liste des options qui seront affiché. On ne peut que mettre 5 options maximum, si il y en a plus dans la liste, ils seront supprimés et affichera les 5 premiers.
Et le dernier paramètre "version" est le petit mot en dessous du titre (signature, version du projet, etc...). Si vous ne voulez rien, mettez None a la place

rapide a utiliser
pas customable

dlocate
dmenu


Le module python s'appelle gintpp et est en fichier joint.

Voilà
Tuper

@RDP

Fichier joint


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

Citer : Posté le 11/02/2024 11:43 | #


C'est bon! La nouvelle version de dlimage est sortie tu peux maintenant remplacer ça:
img = [
"#","#","#","#","#",
"#","0","0","0","#"]
en ça !
img = [
"#####",
"#   #"]
oui, les 0 sont remplacés par des espaces et il n'y a qu'une seule couleur. De cette façon, c'est plus facile a faire ton image . Prochaine mission: faire un éditeur d'image qui te renvoie la liste . Très dur, mais possible!
2 vidéos de démo:

https://youtube.com/shorts/3ZkvTjT4xmE?si=7152U7Lx91Nw4kOS
https://youtube.com/shorts/8fqwjVF-L04?si=bsrGPlyogESx5pXZ

Voilà
Tuper
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Lephenixnoir Hors ligne Administrateur Points: 24568 Défis: 170 Message

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


Où est-ce qu'on peut télécharger/tester du coup ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 11/02/2024 12:14 | #


Non ^^" je suis sur téléphone et l'ordinateur n'est pas le mien :/ je peux tout de même recopier le code qui n'est pas très long . Tu le verras dans 10 min normalement .

Voilà
Tuper
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 11/02/2024 12:24 | # | Fichier joint


Alors, voici le module python . Le module s'appelle gintpp et il n'y a qu'une seule fonction: dlimage. Voici les paramètres:
dlimage(x, y, list, taillex, tailley, couleur)
Dites le moi si il y a une erreur .

Voilà
Tuper
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 11/02/2024 13:31 | #


NOUVELLE VERSION


Fonction Dlimage n'a plus besoin de connaitre la taille . Juste les coordonnées, la list et la couleur.

Toutes les autres fonctions en haut dans le topic seront enlevé sauf les trois dernières

Toutes autres fonctions envoyé dans les commentaires seront prises en compte mais pas forcement faites.

Voilà
Tuper
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 12/02/2024 21:56 | # | Fichier joint


Désolé pour ne mettre en FJ la nouvelle version . Il n'y a que dlimage qui est amélioré: détecte automatiquement la taille et prévient si il y a une image avec une erreur de dimension, comme ça:
img = [
"#   #",
"#   #",
"##### "]
comme vous pouvez le voir sur la dernière ligne, il y a un espace en trop, er donc il dtext() au coordonnées et la couleur de l'image entré par l'utilisateur cela: "list dim error" .

Cette version est en FJ.
Je travaille pour l'instant sur dmenu()

Voilà
Tuper
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 21/02/2024 22:18 | # | Fichier joint


Je vais ajouter le logo de Code Clan (c'est pour mettre l'image en fichier joint)
EDIT: un peu trop grosse ^^"
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 17/05/2024 11:55 | # | Fichier joint


Nouvelle Update

Je présente enfin la 0.2 de gint++ implémentant de nouvelles fonctionnalités et de bonnes nouvelles:
- implementation de "dmenu" "dlocate" et "dbar" (les documentations arrivent bientôt)
- des exemples sur toutes les fonctions
- une TODO list (dans le fichier .pnotes)

Je compte aussi de faire une version en C pour les add-ins pour aider une plus grande variété de codeur (la version CG est un peu plus difficile mais je note tout de même)

Voilà tout ce que j'ai en tête pour l'instant et n'hésitez pas a partager vos idées, ça peut toujours aider!
Lien Gitea
Lien de téléchargement (aussi en FJ)

Amusez vous bien
Tuper
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Lephenixnoir Hors ligne Administrateur Points: 24568 Défis: 170 Message

Citer : Posté le 17/05/2024 13:26 | #


(À la fin de dmenu() tu as un \r qui traîne dans le "return select+1" après le "select" ce qui fait que le +1 est à moitié sur la ligne suivante)
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

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


Corrigé. Merci pour la remarque
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Ptitjoz Hors ligne Membre Points: 262 Défis: 10 Message

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


tu es vraiment fort Tuper4 ! bravo !
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 17/05/2024 21:53 | #


Merci beaucoup!
Si tu as des idées ou commentaires, n'hésite pas a les partager car j'avoue que je suis a bout d'idées ^^"
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 20/09/2024 11:36 | #


Salut,
Ça fais longtemps que j'était inactif mais juste pour vous dire, ce projet n'est pas mort. J'ai quelques autres fonctions à implémenter comme dsave et dload qui fais un capture d'écran et sauvegarde ça dans un fichier. Pour dessiner la capture d'écran, dlimage fais le reste!
Je vais essayé de les faire le plus rapidement possible (surtout que j'ai un problème avec le mode examen...)
Merci beaucoup
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 08/10/2024 15:20 | #


Donc j'ai réussi essayé de faire dsave() et dload() qui est essentiellement l'équivalent d'une capture d'écran qui est stocké dans la mémoire pour pouvoir la réutiliser plus tard.
Alors j'ai d'abord pensé à faire en sorte qu'il capture tous les pixels et mets un 1 si il est allumé et sinon, 0. Le problème de ça c'est que le fichier va dans ce cas là faire 128×64=8192 octets qui est un beaucoup trop pour seulement une capture d'écran.
J'ai alors fais en sorte que le fichier stocke la capture en héxadécimal: si 4 pixels consécutifs sont allumés (1111) on aura seulement un F, et si on a 1001, on aura un 9.

Cette méthode fera réduire la taille par 4! On aura alors 8192/4=2048 octets pour une capture. Le seul soucis est que je suis sur 35EII et elle est très lente. Et du coup, quand il essaye d'écrire dans un fichier 2048 caractères, il a du mal... J'obtiens à tout les coups une MemoryError.
Alors à part plus optimiser le code, je ne crois pas que ce serait possible...
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 08/10/2024 17:01 | #


C'est probablement une fuite de mémoire ou un truc comme ça dans l'interface de fichiers
Essaye d'écrire ta string d'un coup. Et au passage je crois que tu peux sortir direct en binaire. Si tu peux pas tu pourrais utiliser plus de caractères que les 16 de l'hexa, au moins 32 ou 64
Pc master race - Apréciateur de Noctua moyen
Caltos : G35+EII, G90+E (briquée )
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 08/10/2024 17:26 | #


Alors, j'écrivais déjà tout mon string d'un coup :/ mais du coup, le faire avec 32 caractères sera pas mal en vrai, je n'y avais pas pensé. Ça pourrait alors réglé le problème puisqu'il aura moins de truc à écrire.
Merci pour ta réponse, je vais essayé ça
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Calamari Hors ligne Membre Points: 395 Défis: 0 Message

Citer : Posté le 08/10/2024 17:50 | #


Perhaps I'm misunderstanding, but the gint/display-fx.h and gint/display-cg.h headers provide access to the gint_vram variable, which (according to the headers) is 1024 bytes on FX (G35+E II), and 177408 on CG. Then you could read/write gint_vram directly, without allocating any additional memory.
“Remember to have fun doing this, or it ain't worth it.” — Robert Alan Koeneke
“They call me the king of the spreadsheets, got 'em all printed out on my bedsheets.” — “Weird Al” Yankovic
Fcalva Hors ligne Membre Points: 600 Défis: 10 Message

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


@Calamari He is doing it in Python
@Tuper4 Tu peux faire une issue sur le repo de Sly au cas où il ne voie pas tes messages ici
Pc master race - Apréciateur de Noctua moyen
Caltos : G35+EII, G90+E (briquée )
Calamari Hors ligne Membre Points: 395 Défis: 0 Message

Citer : Posté le 08/10/2024 17:56 | #


@Fcalva Ah okay, I was confused. By the project name, I thought it was a bridge from Python to gint.
“Remember to have fun doing this, or it ain't worth it.” — Robert Alan Koeneke
“They call me the king of the spreadsheets, got 'em all printed out on my bedsheets.” — “Weird Al” Yankovic
Lephenixnoir Hors ligne Administrateur Points: 24568 Défis: 170 Message

Citer : Posté le 08/10/2024 17:56 | #


Si tu étais capable de créer le buffer que tu veux mettre dans le fichier ça m'étonnerait que ça pète au moment d'écrire le fichier.

Sinon je pourrais juste fournir un accès direct à la VRAM comme un type de buffer de MicroPython ça t'éviterait la copie.

Mais stocker des trucs dans la SMEM, c'est... plutôt douteux, IMHO.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 08/10/2024 19:17 | #


Euh... j'ai trouvé le problème je crois déjà en reéssayant, j'ai remarqué que le OSError se passe en essayant de load la VRAM. Et quand je regarde de plus près, le fichier dépasse les 65000 octets ce qui est pas normal du tout. Mais pas du tout. Donc c'est vraiment une erreur au niveau de l'écriture mais le OSError est par ce qu'il n'arribe pas à stocké un string de 666000 caractères dans une variable, pas étonnant...
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz

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