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 - Actualités


Index du Forum » Actualités » La revue des projets - 129
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 Message

La revue des projets - 129

Posté le 11/11/2018 21:20

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


1, 2 Suivante
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 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 ?
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 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é !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 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
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 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
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 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 !
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 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 ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lepianoteur Hors ligne Membre Points: 217 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 Ancien labélisateur Points: 3039 Défis: 11 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 ?
ouais ouais
Lepianoteur Hors ligne Membre Points: 217 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: 5504 Défis: 18 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

Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 Message

Citer : Posté le 12/11/2018 07:28 | #


Le mieux c'est bien sûr quand il y a des images à montrer !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 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.


Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 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 En ligne Administrateur Points: 24673 Défis: 170 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

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Massena Hors ligne Ancien rédacteur Points: 2244 Défis: 11 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...
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 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 En ligne Administrateur Points: 24673 Défis: 170 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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 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 Maître du Puzzle Points: 412 Défis: 2 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
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 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...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
1, 2 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 151 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