Forums Casio - Actualités

Index du Forum > Actualités > La revue des projets - 129
Lephenixnoir
Hors ligne
Administrateur
Points: 13201
Défis: 136
Message
Posté le 11/11/2018 21:20

La revue des projets - 129 :

Bonsoir chers habitués et moins habitués. J'ai du retard sur la revue des projets d'aujourd'hui car il n'y avait pas d'article ; heureusement Krevo nous sauve la mise !

Aujourd'hui, on parle donc d'interpréteur Basic dans le navigateur ! Le projet d'interpréteur a commencé en 2014 et revient après une courte absence. Les fonctions actuelles permettent déjà de tester beaucoup de programmes Basic !


À toi la parole !

Krevo a écrit :
Bonjour,

Dans la série "des nouvelles d'anciens projets qui reprennent" (comme je l'ai lu dans une récente revue des projets), j'aimerais vous présenter ou représenter mon projet "Casio Basic Interpreter", qui devrais être prochainement renommé "Casio Basic Web Interpreter".

En effet, il s'agit d'un interpréteur du basic Casio que j\'ai écrit en javascript (en partant de “JS/CC” pour le parser) qui se présente sous la forme d'une page web avec votre programme dans un grand textarea et un rectangle représentant l'écran de la calculatrice sur lequel vous verrez le résultat de l'exécution de vos programme.

Comme c'est un projet en cours, toutes les instructions ne sont pas encore supportées. Cependant, les quelques programmes d'exemple, ainsi qu'un lien vers une liste de ce qui est déjà implémenté vous aideront.

Parmi les buts du projet :
- faire revivre d'ancien programmes que j'avais écrit par le passé (quand j\'étais au lycée) à un moment où je n\'avais plus de calculatrice sous la main
- "just for fun" (ça c'est une très bonne raison !!)
- perfectionnement en techno web : javascript / canvas
- explorer un peu le monde des parser/compilateur/interpreteur
… et pourquoi pas rendre interactif les exemples des tutoriels / manuels sur le basic.

Si je vous présente ce projet aujourd'hui c'est parce que j'ai récemment repris le développement en ajoutant des choses comme :
la multiplication sans opérateur (style "2AB")
les boucles Do/LpWhile et While/WhileEnd
l'interprétation des symboles ≥,≤,≠,◢,⇒ et → (ce qui vous laisse le choix d'utiliser ces symboles ou leurs équivalents textuels respectivement >=, <=, <>, _, => et -> .... et accessoirement permet de copier/coller directement des exemples provenant de planete-casio)
un 2e choix de combinaison de couleur pour l\'interface : bleu sur fond vert (en plus du noir sur fond blanc déjà existant)

Tout cela est disponible sur http://basic.crevola.org/

Beaucoup de choses restent encore à faire (instructions à supporter, interface à améliorer, ...), mais voilà le projet continue…

Krevo.

Merci pour ton article Krevo, et à la semaine prochaine !

Cette semaine, quatre programmes ont été publiés :
ZeldaGAME de Math680
SLOTGAME de CaptainLuigi
The Legend of Zelda: Forces of Ganon d'Aziog
Pixel de Mactul

Lire la revue précédente : La revue des projets - 128

Fichier joint



Pages: 1, 2 | Suivante

Kikoodx
Hors ligne
Membre
Points: 806
Défis: 7
Message
Citer : Posté le 11/11/2018 21:34 | #
C'est normal si tous les liens sont des liens dev. ?
L'interpréteur devient intéressant, serait-il possible de marquer nos programmes compatibles ?
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Lephenixnoir
Hors ligne
Administrateur
Points: 13201
Défis: 136
Message
Citer : Posté le 11/11/2018 21:36 | #
Aha, non, c'est que je travaillais dessus (d'ailleurs j'ai bien mis le bordel) et j'ai pas pensé à ça quand j'ai pris les liens ! C'est corrigé !
----------------------------------
Rise.
Kikoodx
Hors ligne
Membre
Points: 806
Défis: 7
Message
Citer : Posté le 11/11/2018 21:47 | # | Fichier joint
Faudrait vérifier mais je pense que Krevo_ tient à son underscore

Ou pas...

EDIT : 666 points
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Lephenixnoir
Hors ligne
Administrateur
Points: 13201
Défis: 136
Message
Citer : Posté le 11/11/2018 22:08 | #
J'ai hésité en fait, mais je crois l'avoir vu sans underscore sur le topic. Je modifierai si besoin
----------------------------------
Rise.
Krevo_
Hors ligne
Membre
Points: 62
Défis: 0
Message
Citer : Posté le 11/11/2018 22:20 | #
Je ne tiens à rien...
Par contre qu'on me dise "ça devient intéressant", ça c'est top !
Lephenixnoir
Hors ligne
Administrateur
Points: 13201
Défis: 136
Message
Citer : Posté le 11/11/2018 23:11 | #
Et du coup, quels sont tes prochains plans ? Est-ce que tu as testé des jeux "réels" dessus ? As-tu envisagé de décoder des fichiers g1m/g2m à l'occasion ?
----------------------------------
Rise.
Lepianoteur
Hors ligne
Membre
Points: 179
Défis: 0
Message
Citer : Posté le 11/11/2018 23:45 | #
Une revue des projets presque vide *intéressant Krevo_ je le testerais la prochaine fois que je ferais un jeu en basic*
Je ferais un article par rapport à mon projet UnderCasio la prochaine fois
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Kikoodx
Hors ligne
Membre
Points: 806
Défis: 7
Message
Citer : Posté le 11/11/2018 23:48 | #
Lepianoteur a écrit :
Je ferais un article par rapport à mon projet UnderCasio la prochaine fois

Superbe !

Pour les articles, on doit écrire à partir de quel niveau d'importance ?
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Lepianoteur
Hors ligne
Membre
Points: 179
Défis: 0
Message
Citer : Posté le 12/11/2018 00:29 | #
Je ne pense pas qu'il y ai besoins forcement d'une grande importance même pour annoncer un projet on peut je crois
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Shadow15510
Hors ligne
Administrateur
Points: 2219
Défis: 15
Message
Citer : Posté le 12/11/2018 06:54 | #
Il n’y pas d’importance requise
Avant 2017 la rdp servait de panneau d’annonces : un projet de jeu mais aussi des demandes d’aide, un petit article pour annoncer la sortie prochaine d’un jeu...
----------------------------------
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   100%
Lephenixnoir
Hors ligne
Administrateur
Points: 13201
Défis: 136
Message
Citer : Posté le 12/11/2018 07:28 | #
Le mieux c'est bien sûr quand il y a des images à montrer !
----------------------------------
Rise.
Krevo_
Hors ligne
Membre
Points: 62
Défis: 0
Message
Citer : Posté le 12/11/2018 14:52 | #
Lephenixnoir a écrit :
Et du coup, quels sont tes prochains plans ?


- corriger les "khown problems" (j'ai ajouter une page html qui les listent ... mais j'ai pas encore uploadé sur le site de demo.)
- ajouter de nombreuse instructions manquantes (en commençant peut être par boucle For, GetKey pour les jeu, Plot x,y◢ (parce que j'vais des programmes basé sur ça), gérer les variable type "List ", DrawStat, .... voilà en gros peut être dans cet ordre mais je ne garantie pas que ça va se passer comme ça exactement)

Un moment le plan c'était d'avancer par rapport au tuto de ce site pour aller de + en + loin....

Lephenixnoir a écrit :
Est-ce que tu as testé des jeux "réels" dessus ?


Oui et non. "Calendrier" et "City" sont d'authentiques programmes qui ont tournés sur ma calculatrice il y a x années (bien bien avant le début du commencement du projet d'interpréteur). Il me manque le support de "Plot x,y,◢' pour faire tourner mon démineur

Lephenixnoir a écrit :
As-tu envisagé de décoder des fichiers g1m/g2m à l'occasion ?


Oui, à terme si on supporte 100% du jeu d'instruction (ou pas loin) rien n'empêcherai le chargement d'un fichier à ces formats.... raaahhh et puis même si on est pas à 100% le chargement d'un fichier contenant que des instructions supportés devrait marcher, ce serais génial.

Par contre, il me faudrait de la doc sur ces formats. Si tu as des liens, je suis preneur.

Zezombye
Hors ligne
Rédacteur
Points: 1537
Défis: 12
Message
Citer : Posté le 12/11/2018 18:06 | #
Quelques projets qui pourraient t'intéresser :

- BIDE (https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?cat=6), en particulier pour l'encodage/décodage g1m

- C.Basic (https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14738), un interpréteur basic casio (ce que tu fais)

- B2C, encore un interpréteur/compilateur basic casio (par contre il est pas super avancé non plus, mais tu peux t'inspirer de la méthode de compilation) : https://www.planet-casio.com/Fr/forums/topic14447-1-B2C--Convertisseur-Basic-en-C.html
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir
Hors ligne
Administrateur
Points: 13201
Défis: 136
Message
Citer : Posté le 12/11/2018 18:20 | #
Krevo_ a écrit :
Un moment le plan c'était d'avancer par rapport au tuto de ce site pour aller de + en + loin....

C'est vrai que c'est pas une mauvaise idée ça !

Oui, à terme si on supporte 100% du jeu d'instruction (ou pas loin) rien n'empêcherai le chargement d'un fichier à ces formats.... raaahhh et puis même si on est pas à 100% le chargement d'un fichier contenant que des instructions supportés devrait marcher, ce serais génial.

Par contre, il me faudrait de la doc sur ces formats. Si tu as des liens, je suis preneur.

Cakeisalie5 a fait beaucoup de travail sur le sujet, j'ignore si c'est vraiment documenté. Je te conseille de le pinger sur le chat le jour où tu veux te pencher sur la question, tu gagneras beaucoup de temps.

Donc voilà ce que j'ai à te proposer, mais c'est en vrac :
Les sources de sa libcasio, qui supporte le format g[12][rm]
Index de la doc de SimLo (v20) qui contient le coeur des informations

Zezombye a écrit :
- B2C, encore un interpréteur/compilateur basic casio (par contre il est pas super avancé non plus, mais tu peux t'inspirer de la méthode de compilation)

Oh non, pitié T_T De toute façon Krevo_ sait ce qu'est une grammaire formelle donc je doute qu'il veuille mettre les mains dans un bordel pareil. x)

D'ailleurs j'avais une question : étant donné que tu utilises un parser conventionnel (d'après ce que j'ai compris), comment vas-tu te débrouiller pour implémenter les fonctionnalités du Basic qui exposent les propriétés du bytecode ? Par exemple, le programme suivant qui est syntaxiquement invalide, mais marche.

1→A
Dsz A
WhileEnd
----------------------------------
Rise.
Massena
Hors ligne
Community Manager
Points: 442
Défis: 3
Message
Citer : Posté le 12/11/2018 18:21 | #
Gloire à Krevo, il a sauvé la RdP
C'est super ! Mais quand le générateur de cours sera-t-il réparé ?
Une part des visiteurs de PC viennent uniquement pour ça...
----------------------------------
La loi de Murphy a écrit :
La probabilité qu'un événement arrive est inversement proportionnelle à sa désirabilité.
Zezombye
Hors ligne
Rédacteur
Points: 1537
Défis: 12
Message
Citer : Posté le 12/11/2018 18:25 | #
Il marche plus ?

https://tools.planet-casio.com/pcgenerator/index.php

(2ème résultat pour "planet-casio" d'ailleurs )
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir
Hors ligne
Administrateur
Points: 13201
Défis: 136
Message
Citer : Posté le 12/11/2018 18:30 | #
En fait, le générateur de cours a été purement et simplement supprimé. Pour plusieurs raisons : c'était un outil vieux, il ne valait pas (et je n'avais valu) les e-acts, et il nous attirait aussi une réputation d'inciter les élèves à tricher aux examens.

J'ai donc traqué à la main et retiré toutes les apparitions de l'outil sur le site, sauf - sauf celle que Zezombye a mis en lien, qui est sur le serveur de Ziqumu, et que personne ne peut donc toucher.
----------------------------------
Rise.
Zezombye
Hors ligne
Rédacteur
Points: 1537
Défis: 12
Message
Citer : Posté le 12/11/2018 18:31 | #
Avec le (supposé) abandon du mode examen, faudrait tout de même le garder au cas où

(et les eacts sont malheureusement que dispos sur les graph 35 tweakées )
----------------------------------
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Krevo_
Hors ligne
Membre
Points: 62
Défis: 0
Message
Citer : Posté le 12/11/2018 18:41 | #
Lephenixnoir a écrit :

D'ailleurs j'avais une question : étant donné que tu utilises un parser conventionnel (d'après ce que j'ai compris), comment vas-tu te débrouiller pour implémenter les fonctionnalités du Basic qui exposent les propriétés du bytecode ? Par exemple, le programme suivant qui est syntaxiquement invalide, mais marche.

1→A
Dsz A
WhileEnd




J'ai pas dit que ça allait être "bug compatible" avec l'interpéteur des calculatrices. D'ailleurs rien ne dit que cet exemple marche sur tous les modèles à venir. Et puis le jour où il ne restera "que ça".... et puis c'est vrai qu'aujourd'hui même avec un "While", ça ne sautera pas le "WhileEnd" .... ou alors faut que je change mon implémentation du while ... (et puis j'ai un problème il est trop rapide actuellement).

Bon là, j'ai un stock de truc à faire pour pas mal de temps
Lephenixnoir
Hors ligne
Administrateur
Points: 13201
Défis: 136
Message
Citer : Posté le 12/11/2018 18:45 | #
Dans l'ensemble j'adhère à ton analyse, par contre ce n'est pas un bug ! C'est prévu pour faire efficacement des boucles. D'ailleurs Isz et Dsz sont dans le menu PRGM.JMP...
----------------------------------
Rise.

Pages: 1, 2 | Suivante

Index du Forum > Actualités > La revue des projets - 129

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 31 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd