Planète Casio - Projets de programmation - Flux RSS http://www.planet-casio.com Programmes Casio, Jeux, Cours pour Calculatrices Casio fr-FR https://www.planet-casio.com/images/logo.gif Planète Casio - Projets de programmation - Flux RSS http://www.planet-casio.com 55 50 Programmes Casio, Jeux, Cours pour Calculatrices Casio. Wed, 02 Dec 2020 15:26:00 GMT Wed, 02 Dec 2020 15:26:00 GMT contact@planet-casio.com (Planet Casio) contact@planet-casio.com (Planet Casio) 5 Pas prêt d'être fini : Bisp, langage de programmation chelou https://www.planet-casio.com/Fr/forums/topic16566--.html Basic + Lisp = Bisp (wow name such imagination) Salut salut. Je veux créer un langage expérimental syntaxe Lisp-like vers Basic Casio. J'ai pas grand chose à dire dessus. Ce sera compilé sur l'ordi et faudra transférer sur calto et convertir le .TXT en .GXM (depuis PRGM). Je n'ai pas de grandes ambitions sur ce projet (je veux apprendre à écrire un lexer et éviter l'abandon ⇒ souvenez vous). Syntaxe : ;; Commentaire (set a 1) ;; 1 is true (while a (locate 1 1 "Meh") ;; locate test (set b (getkey)) ;; read user input (when (= b KEY_EXIT) (set a 0))) ;; if exit pressed end the loop Bon euh voilà un topic, ce projet a 90% de probabilité (environ :waza:) de finir en vaporware. Le Gitea arrivera quand il y aura quelque chose à voir. Bonne soirée ? Tue, 24 Nov 2020 19:24:58 +0100 fxListExporter, export list data by QR code https://www.planet-casio.com/Fr/forums/topic16555--.html fxListExporter is an Add-in for fx-9860 series calculators. It can help you export your calculator's list data in CSV format. :p What can it do > Generate a CSV file to storage memory. > Generate a CSV file to SD card. > Display a QR code. > Choose the columns and rows you want. Instructions 1. Open the tool and press EXE. 2. Use F1~F6 to select columns. Press EXE to continue. 3. Enter the largest row to get. For example, input 3 to get 1~3 rows. Press EXE to continue. 4. Select the export method. Press 1 to save the CSV to the storage memory; Press 2 to save the CSV to the SD card; Press 3 to display the data through QR code. 5. If you choose 1 or 2, you may encounter a situation that the CSV file already exists. Press F1 to overwrite the file at this time. 6. If you select 3, the QR code is displayed. If not, that means too much data was selected. Pictures https://www.mythologyli.cn/wp-content/uploads/2020/11/main.pnghttps://www.mythologyli.cn/wp-content/uploads/2020/11/col.pnghttps://www.mythologyli.cn/wp-content/uploads/2020/11/row.pnghttps://www.mythologyli.cn/wp-content/uploads/2020/11/method.pnghttps://www.mythologyli.cn/wp-content/uploads/2020/11/exist.pnghttps://www.mythologyli.cn/wp-content/uploads/2020/11/qr.png Thanks Thanks flaribbit for his fxQr library. Thanks Simon Lothar for his great work in syscall. Known Issue When using QR code mode, this tool can't export too much data once. Github Link Mon, 16 Nov 2020 08:22:42 +0100 GLaDOS V5 https://www.planet-casio.com/Fr/forums/topic16529--.html Hey ! Comme vous le savez la version 5 de Planète Casio est dans les cartons. Entre autres nouveauté un nouveau chat qui se fera non plus par la traditionnelle shoutbox mais via un serveur IRC. Nouveau chat implique nouvelle version de GLaDOS ! ;) Je me propose pour faire la nouvelle GLaDOS, codée en Python pour V5. J'aurais du coup besoin d'info… j'ai commencé à chercher un peu, le plus simple est de faire une lib maison pour connecter GLaDOS à IRC, lire et envoyer des messages. J'étais parti avec `socket` mais j'ai aussi besoin des certificats SSL et des authentifications SASL… J'avoue que je comprends pas trop les docs de pyOpenSSL :sry: Merci d'avance ! Commandes et messages prévus : - Notification de création de topic - Notification de nouveau message sur un topic - Notification de publication d'un programme - Notification de nouveau message sur un programme - Kick / Unckick (non publique) - Ban / Deban (non publique) - Message custom (réservée au staff) ( - Recherche sommaire sur Wikipédia) ( - Traduction de mots) ( - Base de chatbot) Commandes implémentées : - Wed, 28 Oct 2020 22:56:50 +0100 LINK! (jeu multijoueur) https://www.planet-casio.com/Fr/forums/topic16527--.html bonjour aujourd’hui je présente mon projet, LINK ! est une sorte de party-game ou l'on peux jouer en solo ou a deux avec le câble 3 broche ;) grace a gint le jeu sera compatible sur la plupart des calculatrices (enfin j'espère :mmm: ) :here: liste des jeux: :here: search (annulé) dans ce jeu, il faudra chercher un objet précis dans un lieux étrange c'est comme among-us mais au lieux de tuer et survivre, il faudra trouver un objet :here: press dans ce jeu vous vous trouverez sur une ligne et il faudra presser la touche affiché a l’écran comme OPTN ou 6 ou DEL etc... pour chaque touche pressé vous avancerez de quelques pixels, le premier que arrive a la bordure droite de l’écran gagnera :here: morpion rien de plus basic qu'un morpion :lol: :here: roket dans ce jeu vous serez dans un tableau fixe avec un lance-roquettes vous vous déplacerez dans 4 sens mais vous pourriez tirer que a droite ou a gauche le premier coup sera fatal >:) :here: IMAGES: https://i.ibb.co/chCRdrb/icon-fx.png https://i.ibb.co/fpvnBz2/logo.png https://i.ibb.co/MS9H7br/player.png https://i.ibb.co/CsvjpqY/button.png :here: VERSIONS: :here: https://www.planet-casio.com/Fr/programmes/programme4114-1-link-version-test-1-pedrobzh-jeux-add-ins.html :here: compatible toute graph monochrome sh4 (graph 35+E II inclus) après 2 semaine la première version est disponible, elle contient: -les déplacements du futur jeu roket -un debug mode -des animations -des mouvements fluides bon test ^^ Wed, 28 Oct 2020 14:56:08 +0100 Solve function dans un script casio cp 400 https://www.planet-casio.com/Fr/forums/topic16519--.html BONJOUR, J'ai une question technique conserant la programmation sur une casio fx cp400. J'aimerai resoudre un système d'équations dans un script. M et K sont des Matrices, X est un vecteur de variable. [v1,v2,v3]==>X {v1,v2,v3}==>Var Solve(M.X=KX, Var) Avec "Var" est défini comme une liste variable. La taille de cette liste depend de la taille de la matrice. Du coups, je ne peux pas juste definir explicitement mes variables dans la fonction solve, car mon programme est sensé adapter le nombre de variables selon la taille de la matrice. Sauf que la fonction solve, n'exécute pas Var pour utiliser les variables défini dedans mais la considère comme une variable en soit. Et par conséquent, j'ai comme reponse: Var=Var (car tout simplement il n'existe pas de variable Var dans l'équation) J'aimerai savoir comment dois je proceder pour que la fonction solve résout l'équation avec une liste de variable nommée Var sans a ce que j'explicite les variables une àune dans la fonction solve... Merci d'avance pour votre support. Cordialement Sun, 25 Oct 2020 16:19:15 +0100 Touhou https://www.planet-casio.com/Fr/forums/topic16516--.html Je connais un admin qui serait pas content parce que je créé pas de topic sur un projet en cours… C'est chose faite :-° Comme vous le savez sûrement si vous passez de temps en temps sur le site, Lephenixnoir a créé un truc qui s'appelle gint, et qui révolutionne la programmation d'addins comme MonochromeLib a pu le faire. Le concept m'a plu, du coup j'ai commencé à avoir des idées. Dont une qui m'a paru être assez simple mais complète, faire un shot'em'up, en particulier un remake de Touhou. La série de jeu est assez connue, y'a déjà tout un tas d'assets, et techniquement ça utilise un paquet de concepts. Bref, je suis parti là dessus. Je bosse énormément via Git, le dépôt du projet est ici → Darks/Touhou. Je pense faire un fichier de releases notes pour indiquer comment ça avance, mais sachez que c'est avant tout une expérimentation des possibilités offertes par gint ainsi que de l'apprentissage de ma part (ça fait plus de 5 ans que j'ai pas sorti un truc en C). Ne vous étonnez pas si je poste peu sur ce topic, c'est soit que ça se passe en local, soit sur la forge, soit pas (parce que je fais autre chose, comme développer la v5 par exemple…). Releases notes TBD… Sat, 24 Oct 2020 22:44:07 +0200 FxLibC: La bibliothèque standard C pour les calculatrices https://www.planet-casio.com/Fr/forums/topic16511--.html Salut à toi jeune développeur ! FxLibC est une bibliothèque standard C basé sur l'interface que propose GLIBC, la "vrai" bibliothèque standard. Alors, je sais, ce n'est pas la première fois qu'une telle initiative est prise mais j'ai de bonnes raisons de le faire : L'OS de Casio n'est pas adapté pour oser faire un portage de la Glibc original car trop de mécanismes sont manquants et la plupart des abstractions fournies par Casio sont, au mieux, bancales. C'est pourquoi j'ai décidé de refaire une librairie de 0 qui permettra de tirer toute la puissance des OS et permettra d'avoir une interface commune pour les OS Casio monochrome/couleur et des noyaux custom comme Vhex. Pour l'instant, c'est juste un "proof of concept" où la lib peut être compilée, installée et désinstallée en fonction de l'OS et du format* mais en matière de fonctionnalité, il n'y pas grand-chose d'incroyable, seules quelques fonctions basiques y sont implémenté. Je continuerai de l'améliorer au fur et à mesure de mes expérimentations / projets qui, je l'espère, arriverons bientôt. Pour pas oublier, voici le lien vers le dépôt Git : > Lien vers le dépôt Gitea, Vhex-Kernel-Core/fxlibc < Mes prévisions pour la bibliothèque : Changement de la gestion des versions C'est une des choses que je n'ai jamais vraiment regardées mais je vois de plus en plus d'intérêt à avoir une gestion des versions correctes si on veut avoir quelque chose de maintenable dans le temps. Actuellement, la version est obtenable uniquement avec `make version` et elle est mise a la main dans le makefile. J'avais pensé a une gestion automatique des versions basées sur le git: je cherche le dernier commit avec un tag (tag qui contiendra le major.minor (ex: 2.6)) et le nombre de commit après le tag indique la version des patchs. Mais je ne sais pas s’il y a moyen plus simple et plus "automatisant"(?) Abstraction de Bfile (l'interface mise en place par Casio pour gérer les fichiers) Comme je vais devoir implémenter les "appels système" `open(), lseek(), close()`, etc ; Je me suis dit que j'aurais tout intérêt à faire une vraie abstraction de Bfile car elle apporte trop de contrainte (par exemple, on doit spécifier la taille du fichier qu'on veut créer, il y a quelque subtilité avec l'écriture, c'est lent, ...) Donc j'hésite entre : 1) faire juste des wrappers autour des appels système Bfile: le plus simple mais on aura la plupart des contraintes imposées par le Bfile. 2) faire une plus grosse abstraction sur le Bfile: mais ça implique de "monter" le système de fichier au début du programme, potentiellement plus rapide mais on n'échappera pas aux limitations de création et d'écriture dans un fichier). 3) embarquer un système de fichiers custom en RAM et enregistré les informations uniquement quand l'addins retourne au menu : mais ça pose beaucoup de problèmes organisationnel et architectural car je trouve qu'un FS n'a pas sa place dans une bibliothèque standard. Est-ce qu'il faudrait faire un projet à part ? Si oui alors : comment on relit les deux projets ensemble sans que ce sois infernal pour les développeurs ? Sur quel type de format on part ? Comment l'installer proprement en RAM et où ? Comment et quand installer le FS ? Comment on y accède si le système est isolé de la librairie ? Personnellement je suis plus pour la 3ᵉ options car elle permettra d'avoir un vrai abstraction sur le FS de Casio et on pourrait implémenter beaucoup plus de fonctions pour la manipulation et la sécurité des fichiers (en plus de gagner en performance(?)) mais ça pose beaucoup de problèmes. À méditer. Abstraction de la gestion de la mémoire Est-ce qu'on continue d'utiliser des wrappers autour des appels système pour la gestion de la mémoire (malloc, calloc, free, ...) ? Ou est-ce qu'il faudrait mieux refaire cette partie dans la lib ? Actuellement, j'utilise l'ABI de Casio et Vhex pour la gestion de la mémoire car du côté de Casio c'est flou et du côté de Vhex je n'ai pas le choix car l'entièreté de l'environnement (processus, kernel, FS, ...) est en RAM et je n'ai pas le MMU à disposition. Donc est-ce que ça vaut vraiment le coup d'implementer un tas custom, sachant qu'on aura surement rien de commun entre les différents OS ? Écriture de la documentation C'est une des parties cruciales si on veut avoir quelque chose d'utilisable et d'améliorable, seulement je ne sais encore sur quel médium faire la documentation : sur le wiki, faire un topic, générer une documentation HTML / PDF ? D'ailleurs, ça me fait penser, es-ce que la v5 de planet-casio améliore cette partie ? J'entends par là, est-ce qu'il y aura un moyen de synchroniser la bible, le wiki du Gitea et le topic en même temps ? Ça pourrait être extrêmement intéressant de centraliser les projets ainsi que leurs documentations / topics. Support des librairies dynamique pour Vhex C'est une des fonctionnalités cruciale pour Vhex car la version 2.0 repose entièrement sur le mécanisme de pouvoir relocaliser / charger des fonctions à la volée. Mais malheureusement, GCC semble ignorer les flags pour la génération des bibliothèques (pourtant on peut créer des exécutables en PIE !). Bref, j'avais envoyé un mail à GCC pour avoir des informations mais je n'ai toujours pas eu de réponse. Optimisation des fonctions Hé oui, l'intérêt d'avoir une lib complètement indépendante des OS et communautaire, c'est qu'on va pouvoir optimiser la plupart des fonctions basique ! Attention toute fois, s’il vous prend l'envie de participer, évitez d'écrire du code utilisant des modules hardware pouvant générer des interruptions (comme le DMA et le SPU) a moins d'être absolument certain que le système d'exploitation est capable de les gérer. Mais n'oubliez pas que le but de la lib est d'être la plus indépendante possible vis-a-vis des OS pour faciliter son portage. Actuellement, rien n'est optimisé et rien n'est garantie de fonctionner comme il est décrit dans la norme POSIX ou dans la documentation de la glibc mais à l'avenir, j'espère pouvoir les respecter le plus fidèlement possible. D'ailleurs, si vous voulez participer au projet n'hésitez pas ! J'ai besoin de pas mal de retour pour que la bibliothèque puisse être un jour utilisable par d'autre personnes que moi :E Thu, 22 Oct 2020 17:39:18 +0200 Idée d'Add In https://www.planet-casio.com/Fr/forums/topic16499--.html Bonjour ! Je viens d'installer gint et je ne sais pas quoi programmer.. Des idées ? :lol: Sun, 11 Oct 2020 21:47:05 +0200 Mystery Box https://www.planet-casio.com/Fr/forums/topic16483--.html Bonjour à tous ! Certains connaissent déjà un peu ce projet, car j'en avais parlé dans les RDP. Malheureusement, aujourd'hui je n'ai plus vraiment la motivation de le terminé, disons que j'ai vu très (trop ?) grand. Mais bref, j'ai décidé de tout de même sortir de l'ombre et de l'exposer ici. Voici donc une partie du README.md du dépôt Gitea du projet, traduit en français (j'sais pas pourquoi je l'ai écris en anglais...) Je ne le rend pas encore publique car il contient toute les solutions du jeu (vous verrez plus bas). MYSTERY BOX C'est donc un jeu de type "Clicker Aventure" destiné à nos chère graphe mono (désolé les couleurs mais comme je n'en ai pas pour l'instant ce n'est pas prévu de porter le jeu sur celle-ci...) https://www.planet-casio.com/storage/forums/rdp_160-178522.png # Concept de base Basé sur ce jeu flash Coinbox Hero du site Armorgames. Vous devez frapper une mystérieuse boîte pour récupérer des pièces et gagner de l'argent. La "difficulté" est incrémentale, vous devez améliorer vos compétences pour gagner de plus en plus d'argent. - Force : pour frapper la boîte plus fort et faire sortir plus de pièces à chaque coups - Chance : pour faire sortir des pièces de valeurs plus grandes - Motivation : pour activer votre mode "super sayan" plus longtemps, ce mode permet de taper plus vite dans la boîte - Shaker : fait remuer la boîte pour faire sortir des pièces de temps en temps (auto click) - Collecte : ramasser automatiquement les pièces Tous les prix des améliorations ont étés précisément calculés pour finir le jeu en environ 2h de clics. https://www.planet-casio.com/storage/forums/rdp_162-178523.png # Aventure Le voyage Ton rêve est d'aller dans l'espace, mais pour ça tu as besoin d'argent, beaucoup d'argent ! Tu penses que le meilleur moyen de gagner de l'argent c'est de te procurer puis revendre la chose la plus convoitée du monde. Ta grand-mère t'a raconté une histoire à propos d'une lointaine grotte contenant d'incroyables diamants. Tu décides donc de partir à la recherche de ce fameux trésor. Pour cela tu devras quitter ta petite ferme familiale pour te rendre en ville, acheter un bateau pour traverser la mer, etc... Un rival voleur Mais tu as un frère mesquin qui souhaite atteindre la grotte aux diamants avant toi pour t'empêcher de réaliser ton rêve ! Il tentera parfois de te voler ton argent, tu devras t'attendre à le combattre ! Quelques événements Tout au long de ton aventure, il se passera certain événements en fonction de ton environnements (appelé "monde" dans le jeu). Ils te permettront de gagner ponctuellement un grosse somme d'argent selon tes actions. Exemples : - Paisible Ferme : "Grand-mère te donne de l'argent de poche" un sac d'argent apparait sur l'écran, tu as 3 secondes pour aller le ramasser avant ton rival - Grande Ville : "Tu trouves un ticket à gratter" découvre tes gains - ... Les reliques De temps en temps la boîte mystérieuse se réveille (elle affiche un point d'exclamation) pour révéler ses secrets, tu dois rapidement la frapper pour qu'elle te donne quelque chose. Généralement elle te donnera un sac de pièces, mais parfois ce sera une relique, que tu pourras ensuite revendre pour gagner encore plus d'argent ! En revanche tu ne vendras jamais les premières reliques de chaque type que tu trouveras, tu les donneras à ta grand-mère pour la remercier. Arriveras-tu à trouver toutes les reliques de chaque environnements (monde) ? https://www.planet-casio.com/storage/forums/rdp_158-178524.png Le journal de bord Tu écriras chaque tâche réalisée dans ton journal de bord, par exemple lorsque tu auras frappé 1000 fois la boîte mystérieuse. Pourras-tu effectuer toutes les tâches de ta liste (succès) ? Il y a aussi quelques tâches mystère, pourras-tu toutes les trouver ? Fait Moteur physique Apparition des sacs de pièces Ecrans : Accueil / Améliorations / Choix du monde Améliorations : Force / Chance Evénement : 1 En cours Améliorations : Motivation Evénement : 2 A faire Validation des Succès Apparition des Reliques Ecrans : Journal (succès) / Collection (reliques) Améliorations : Collecte / Shaker Evénement : 3 à 8 Moteur de combat contre le rival Histoire (animations d'intro, de déblocage de monde, fin...) Ce qui prend le + de temps ce sont les événements, car se sont concrètement des mini-jeux. Ensuite en terme de difficulté viens le moteur de combat, il est relativement simple mais ce sera un bon morceau. Le reste (histoire, succès, reliques) devrait être assez simple Sat, 26 Sep 2020 13:46:47 +0200 Projet de jeu pour débutant : Showdown https://www.planet-casio.com/Fr/forums/topic16480--.html Bonjour Je me lance dans un nouveau projet : Un pokemon du type Showdown sur Casio graph90+E (https://pokemonshowdown.com/) où l'on choisis son équipe, ses objets... avec les graphismes du type Noir et Blanc. Avec un mode Joueur vs IA et un mode 2 joueurs (2 calculatrices) Thu, 24 Sep 2020 14:14:42 +0200