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 » Casio Basic Web Interpreter
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Casio Basic Web Interpreter

Posté le 29/08/2014 15:06

Je vous présente ici mon projet "Casio Basic Web Interpreter" qui a débuté en 2014 et dont le développement se poursuis encore actuellement.

Il s'agit d'un interpréteur pour le langage basic des calculatrices Casio.
Le truc c'est que c'est un interpréteur en mode web, le rendu (=écran de la calculatrice) se fait sur un canvas HTML5.

Donc c'est ici => Casio Basic Web Interpreter



ATTENTION : ce que je partage avec vous est dans une version "alpha", il manque encore beaucoup de choses...
J'ai mis pleins de programmes en exemple.

En vrac la liste des instructions supportées :

[color1] Plot
[color1] PlotOn
PlotOff
PlotChg
[color1] PxlOn
PxlOff
PxlChg
PxlTest
[color1] Line
[color1] [sketchMode2] F-Line
[color1] [sketchMode2] Horizontal
[color1] [sketchMode2] Vertical
[color1] [sketchMode2] Circle
Plot/Line-Color color1
S-L-Normal
S-L-Dot
S-L-Broken
S-L-Thick
S-L-Normal
S-L-Thin
Cls
ClrText
ClrGraph
BG-Pict
BG-None
StoPict
RclPict
AxesOn
AxesOff
LabelOn
LabelOff
Isz
Dsz
Lbl
Goto
Prog
Return
Stop
Mcl
Range
ViewWindow
Menu
Locate
Text
expr->variable
expr->variableStart~variableEnd
variable
"string"
?->variable
"string"?->variable
Ran#
RanInt#
GetKey
MOD(
Int
Intg
Frac
Deg
Rad
Grad
sin
cos
tan
Rec
Pol
Ans
+
-
*
/
=> (If)
If/Then/Else/IfEnd
<=
>=
=
<> (or !=)
<
>
And/Or/Xor/Not
(expr)
-expr
Do/LpWhile
While/WhileEnd
For/Next
Break

{1,2,3,4}->List n
List n->List m
List Ans
x->Dim List n
Dim List n
Filen
Seq(
x->List n[expr]
List n
List n[expr]
ClrList
ClrList n
Sum list
Prod list
Mean(list
Median(list
Max(list
Min(list
SortA(list
SortD(list
Fill(value,list)
Augment(list,list)
Cuml list
?List list
Percent list
RanInt#(min,max,nb)
RanList#(int)

[[1,2,3][4,5,6]...]->Mat n
Mat n
Mat Ans
{l,c}->Dim Mat n
Dim Mat i
x->Mat n[expr,expr]
Mat n[expr,expr]
Mat n->Mat m

1 color can be Black, Blue, Red, Magenta, Green, Cyan or Yellow
2 sketchMode can be SketchNormal, SketchThick, SketchBroken, SketchDot, SketchThin


Vous trouverez les sources sur GitHub.

A bientôt.
Krevo_


Précédente 1, 2, 3 ··· 5, 6, 7, 8, 9 Suivante
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 24/10/2019 20:09 | # | Fichier joint


J'ai rajouté une démo draw sin/cos qui utilise quelques trucs implémentés récemment (GridOn/GridOff, Affectation/lecture des variables Xmin/Xmax/Ymin/Ymax/....., Revu dessin des axes et ajout des graduations).



voir le site web

J'espère bientôt dessiner un truc du genre cycloïde en implémentant GraphXY()
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 25/10/2019 21:57 | # | Fichier joint


Voilà, ajout de Graph(X,Y)=(

On peut par exemple dessiner ça =>

Graph(X,Y)=(2T - 3*sin T, 2 - 3*cos T

Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Sentaro21 Hors ligne Membre Points: 878 Défis: 0 Message

Citer : Posté le 26/10/2019 04:53 | #


This is a Lissajous sample program.(from C.Basic GraphXY sample program)
It works fine.
The waveform changes with the cursor keys.
Deg
'G-Connect
CoordOff
GridOff
AxesOff
LabelOff
ClrGraph
ViewWindow -2,2,0,-1,1,0,0,360,1
Cls
2->A
1->B
-10->C
5->D

Do
Getkey->K
If K<>L:Then
K=39=>D+(D<10)->D
K=29=>D-(D>-10)->D
K=28=>B+(B<10)->B
K=37=>B-(B>-10)->B
K=27=>A+(A<10)->A
K=38=>A-(A>-10)->A
K->L
IfEnd

C+D->C

Cls
'Text 1,1,"A(LR)="
'Text 1,65,A

'Text 18,1,"B(UD)="
'Text 18,65,B

Graph(X,Y)=(sin ((A*T)+C),cos (B*T)


Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 26/10/2019 18:09 | # | Fichier joint


Thanks for this nice program.

The 'Concours de rentrée 2019 - Épreuve de tracé !' has given me an idea ... (which in some way was more or less already in my mind ...).

So here it is : source code of Casio basic program can be encoded in Url !!! Just click here to see the Lissajous sample program :-)



Now, ... I just need to add a 'share this program' feature to automatically generate the URL for the user.
(UPDATE: the "share" button is now online !)
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Sentaro21 Hors ligne Membre Points: 878 Défis: 0 Message

Citer : Posté le 27/10/2019 10:15 | #


Thanks!
I made one mistake.
The value of TθPtch was 3.6 instead of 1.
However, the command processing speed of Web Interpreter is fast, so the difference is not noticeable.

The "share" button is very useful.

Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 27/10/2019 12:31 | #


Sentaro21 a écrit :
I made one mistake.
The value of TθPtch was 3.6 instead of 1


No, problem. I've updated the link posted above.
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 03/11/2019 21:07 | #


Salut,

Je n'ai pas la calto sous la main pour vérifier, mais ajouter
"abcde"
après les locates ne doit pas écrire "abcde" à la suite, ni remonter les lignes écrites avec locates
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 03/11/2019 21:35 | #


Je suis en train justement de revoir cette partie là, (notamment parce que je voulais autoriser les couleurs devant locate). Et je me suis aperçu de ce genre de problème... donc c'est vraiment le tout prochain truc qui sera en ligne.
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 10/11/2019 16:51 | # | Fichier joint


Ninestars a écrit :
Salut,

Je n'ai pas la calto sous la main pour vérifier, mais ajouter
"abcde"
après les locates ne doit pas écrire "abcde" à la suite, ni remonter les lignes écrites avec locates

Voilà, aujourd'hui je mets en ligne des corrections sur le Locate (à l'occasion de l'ajout de la possibilité de mettre une couleur devant le Locate, c'est surtout sur ça que je travaillais ces derniers jours).

Le programme suivant :
Green Locate 7,4,"GEO"        
Red Locate 13,4,"GRAPH"
"ABC"
"DEF"

donnait :


Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 10/11/2019 16:52 | # | Fichier joint


Maintenant cela donne :

exemple en ligne ici
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 10/11/2019 17:24 | #


@Krevo_: Ce logiciel est vraiment bien, je suis fan !
"GEO GRAPH" ... ça me dit quelque chose ça
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 10/11/2019 18:03 | #


Merci.

C'est dans ton programme que j'ai découvert que l'on pouvait mettre une couleur devant le Locate (et accessoirement que ce n'était pas supporté par mon interpréteur).
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 10/11/2019 18:04 | #


On peut mettre des couleurs devant à peu près toutes les fonctions graphiques soit dit en passant...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 10/11/2019 18:06 | #


Au moins un truc qui marche bien en Basic
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 10/11/2019 18:22 | #


Oui, mais pour moi les fonctions graphiques c'était ... sur l'écran graphique seulement !

Ajouté le 30/11/2019 à 17:05 :
Je viens enfin de merger ma branche 'IF_Reloaded' sur master. Ce qui en gros signifie que j'ai terminé ma nouvelle implémentation et donc corrigé les divers bugs rencontrés sur les If/Then/Else ... certains programmes s'en portent beaucoup mieux comme par exemple Carton de loto de Corne2plum3 qui s’exécute ici en ligne sans modification (à part l'ajout d'une directive #lowres pour être bien sûr d'être en basse résolution)

ça avance .... ça avance ...
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Naejdoree Hors ligne Membre Points: 66 Défis: 0 Message

Citer : Posté le 03/07/2021 13:34 | #


Coucou, je voulais tester l’interpréteur avec mes programmes mais quand je copie colle depuis FA-124 le programme ne compile plus car les caractères spéciaux de la calculatrice sont convertis en ascii, il y a un moyen de résoudre ce problème ?
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 05/09/2021 22:47 | #


Naejdoree a écrit :
Coucou, je voulais tester l’interpréteur avec mes programmes mais quand je copie colle depuis FA-124 le programme ne compile plus car les caractères spéciaux de la calculatrice sont convertis en ascii, il y a un moyen de résoudre ce problème ?


Faut que j'installe FA-124 et que tu me donne un exemple de programme qui pose problème.
Il peut y avoir soit des problèmes caractères spéciaux, soit des instructions du langage non encore supportées.

Ajouté le 13/09/2021 à 19:50 :
C'est pas mort. Après une longue pause j'ai fait :
- correction bug js lors utilisation de l'instruction BASIC "Menu" (et donc l'exemple appelé "Menu" refonctionne)
- update de la lib "CodeMirror" qui est utilisée pour l'éditeur de code source sur le site web
- ajout de boutons pour l'insertion de caractères spéciaux (un peu voir beaucoup comme ici quand on rédige un message).
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 16/01/2022 23:12 | #


J'ai fait un petit fork :

- Remplacement de rhino par node.js et enlevage du make
- Remplacement de CodeMirror par Monaco (l'éditeur de VS Code)
- Ajout de la coloration syntaxique et de la police de BIDE
- Ajout des onglets
- Un peu de clean dans le index.html (split des programmes chacun dans son fichier)

Il y a 2-3 trucs qui ont été cassés (genre le chargement d'un programme par l'URL) mais je corrigerai ça dans un second temps.
Pour moi, la prochaine étape est de faire une conversion g1m -> json pour pouvoir charger n'importe quel g1m en live. (et un peu de refactoring aussi )
Puis, à terme, on pourra mettre l'interpréteur directement sur le site de planet casio pour pouvoir tester des programmes facilement avant de les télécharger

https://github.com/Zezombye/CasioBasicInterpreter
https://zezombye.github.io/CasioBasicInterpreter/public/index.html
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir Hors ligne Administrateur Points: 24563 Défis: 170 Message

Citer : Posté le 16/01/2022 23:15 | #


Je sais pas trop ce que font les boutons de chargement des programmes dans ta version mais il ajoutent juste des commentaires chez moi. Et je n'arrive pas à exécuter de code (?)
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 16/01/2022 23:24 | #


C'est réglé
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 17/01/2022 17:54 | #


Il est intéressant de voir des choses se développer sur ce sujet.

Notez bien que je n'ai rien contre un fork ... ça apporte son lot de bonnes choses.
Cela me fait penser qu'il faut que je sépare le projet en deux :
- une partie "core"
- une partie "site web exemple".

Zezombye a écrit :

- Remplacement de rhino par node.js et enlevage du make
- Remplacement de CodeMirror par Monaco (l'éditeur de VS Code)
- Ajout de la coloration syntaxique et de la police de BIDE
- Ajout des onglets
- Un peu de clean dans le index.html (split des programmes chacun dans son fichier)


Les onglets c'est intéressant... à creuser (Il semble se créer des onglets seulement au chargement des programmes exemple.. comment créer un nouvel onglet ? renommer un onglet ? fermer un onglet ?... )

Un autre éditeur que CodeMirror .. pourquoi pas ... quand j'aurais effectivement séparer entre "core" et "site web exemple" on utilisera bien l'éditeur que l'on veut (ou même pas d'éditeur du tout .. par exemple pour une intégration dans un site web)

La police de BIDE ... je suis partagé car je vois que des commentaire style :

# Tentacules
# adapted from Alexot (https://www.planet-casio.com/Fr/compte/voir_profil.php?membre=alexot)
# see https://www.planet-casio.com/Fr/programmes/programme3871-1-Tentacules-alexot-.html"


s'affichent :

# Tentacules
# adapted from Alexot (https:÷÷www.planet-casio.com÷Fr÷compte÷voir_profil.php?membre=alexot)
# see https:÷÷www.planet-casio.com÷Fr÷programmes÷programme3871-1-Tentacules-alexot-.html


Et une instruction comme (dans le programme "Lines", sous-programme "RNDCOLOR") :

Plot/Line-Color

s'affiche

Plot÷Line-Color

Bref, le bon vieux caractère "/" (code ascii 47) s'affiche visuellement comme un symbole division,
Alors qu'il existe un symbole "÷" (code iso8859-1 à 247) qui est très bien pour afficher un symbole division. J'ai d'ailleurs choisis d'ajouter un symbole "÷" sous l'éditeur sous mon site http://basic.crevola.org/ et remplacer les "/" de division (et seulement ceux là) par "÷" dans les programmes d'exemples (comme "IMC", "Calendrier", "Polygon", ..). Je pourrais pursuivre et remplacer aussi les "->" par exemple par un caractère unique de flèche ... j'ai souvent prévu 2 façons de saisir certains caractères dans un code source :
→ ou ->
≥ ou >=
÷ ou /
...

Donc, je vois personnellement pas l'intérêt de la police de caractères de BIDE dans l'éditeur de code.

Pour le clean dans index.html, ça c'est bien car c'est un peu un gros fourre-tout de mon côté. Un site qui utiliserai le "core" peut à loisir proposer sa façon de lister / chercher / charger des programmes d'exemples. J'avais besoin de démontrer par un site web et des programmes d'exemples pré-écrit l'utilisation de l'interpréteur de basic Casio.

Le plus gros du boulot pour moi est tout ce que je n'ai pas encore mis dans le core, et qui fait que tous les programmes se peuvent pas encore s'executer tels quels (à cause d'instructions non supportées).

Après je peux rien promettre en temps que je vais passer sur le projet, donc c'est bien que ce soit public et que vous puissiez en faire ce qui vous intéresse...
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Précédente 1, 2, 3 ··· 5, 6, 7, 8, 9 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 34 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