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, 4, 5, 6, 7, 8, 9 Suivante
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 26/11/2018 18:49 | #


Ok, ..j'ai testé avec Firefox :-( j'ai uploadé 2 légères retouches.
Il faut que je pense à bien tester avec Chrome ET Firefox ....
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 26/11/2018 18:52 | #


Super, ça marche maintenant ! Je réalise que mon cache était peut-être en faute...
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 27/11/2018 23:14 | #


Oui, le fichier "cbi.js" est potentiellement en cache.... Donc il faut bien recharger pour avoir les nouveautés. (Il faut que je rajoute un paramètre "bidon" après le nom du fichier js, genre "cbi.js?xxxxxx" où xxxx serait mon build number ... )

News du 27/11/2018 :
- ajout de And/Or/Xor/Not (et d'un programme de test/exemple : "Bool. table") ... comme ça on peut faire les exemples du tutoriel Basic Casio de ce site, en bas de la page conditions.
- (du coup revu ≥, ≤, ≠, <, > pour qu'ils renvoient bien 0 ou 1 et non true/false de Javascript)

Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

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


Ha ha, j'ai fait un score de -200 à City... comme quoi la dichotomie n'est pas toujours une solution optimale !

Tout ça marche super, merci !
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 28/11/2018 11:38 | #


Pour la petite histoire City est un portage que j'ai fait du jeu Gorillas qui était une démo de QBASIC sur MS-DOS.

Je conseil de choisir un angle (disons entre 45° et 60°) pourvu qu'il permette de "sortir" (car parfois on est sur un immeuble un peu trop bas) .... puis de ne modifier que la force (entre 60 et 100 sont des valeurs courantes pour atteindre l'objectif). Si on change les 2 paramètres en même temps, ça devient compliqué.
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 28/11/2018 13:39 | #


En l'occurrence mon adversaire était caché derrière une muraille, du coup j'ai du progressivement augmenter l'angle, je crois que j'ai fini à 75°, 70° ne passant pas. Pour la force, c'est effectivement là que j'ai tapé (80 de mémoire).
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 28/11/2018 14:31 | #


News du 28/11/2018 :
- ajout des variables manquantes : rhô ("r") et thêta ("θ" ou "t") .... parce que c'était pas grand chose à faire...
- ajout de la touche DEL (code touche Casio : 44) sur le clavier virtuel (mappée au Backspace du clavier PC)


Ajouté le 05/12/2018 à 19:37 :
(Mercredi 05/12)
Je travaille actuellement sur les listes.... Chantier en cours. J'espère une mise en ligne prochaine, au moins pour une partie des fonctions liées aux listes (déjà leur déclarations, les affectations, dimensionnement, lecture d'une valeur, ...).
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 05/12/2018 22:22 | #


Grosse partie, les listes ! Bon courage !
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 14/12/2018 21:51 | #


News du 14/12/2018 : "Les listes, Acte I"
Début du support des listes,
. Dimensionne + affectation multiple: {1,2,3,4,5,6,7}→List 1
- Dimensionne: 7→Dim List 1
- Lecture dimension: Dim List 2
- Lecture: List 1[3]
- Affectation: 9→List 1[3]
- ? ->List 1[3] ou encore "Question"?->List 1[3]
- ClrList et ClrList n
- File n
- Seq(
.... la suite dans l' Acte II. Merci d'être patient.
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Manolo Hors ligne Membre Points: 910 Défis: 13 Message

Citer : Posté le 15/12/2018 11:04 | #


comment on utilise le pxltest?
c'est bon, j'ai trouvé!
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 15/12/2018 11:26 | #


Cela me montre que toutes les fonctions n'ont pas de programme d'exemple, ce qui peux s'améliorer à terme.
C'est censé marcher comme https://www.planet-casio.com/Fr/reference_basic_casio/commande_basic.php?fonc=44
(sauf que je gère pas les mots clefs relatifs aux couleurs, pour l'instant)

Par exemple, tu "allume" le pixel 10,10 et tu le teste, ça doit renvoyer 1 :

PxlOn 10,10
PxlTest 10,10


Mais ceci ne marche pas , faut que j'enquête :

PxlOn 10,10
PxlTest 9,9
PxlTest 10,10


... ok, ça remarche !! Donc petit bug corrigé au passage. Merci.

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

Citer : Posté le 15/12/2018 14:55 | #


ah oui, c'est vrai qu'il y a pas de () sur les calculatrices monochromes!
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 15/12/2018 14:58 | #


C'est tellement pas cohérent d'avoir "PxlOn", "PxlOff" et "PxlTest(" ! Donc éventuellement on pourrais accepter avec et sans parenthèses.

Ajouté le 09/01/2019 :
Pas de nouvelles depuis presque un mois, mais rassurez vous je ne manque pas de choses à faire sur ce projet en 2019.
Voici un petit avant goût de la prochaine mise à jour importante :



ou encore :


Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 09/01/2019 11:43 | #


Ooh, ça sent le support de la Graph 90 ça
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 09/01/2019 11:46 | #




Ajouté le 13/01/2019 à 20:02 :
Les nouveautés du jour sont (voir aussi la Rdp 136) :
- le support des couleurs (White, Black, Blue, Red, Magenta, Green, Cyan, Yellow) et les instructions qui vont avec (Plot/Line-Color color et le support de color devant une instruction graphique type F-Line, Horizontal, ...)
- le support d'une "haute" résolution d'écran de 379x187 pixels (qui correspond à la taille de la zone addressable en Basic de l'écran d'une Graph 90+E sauf erreur...)

Ainsi donc les démos "screen saver" et "random dots" sont modifiés pour utiliser des couleurs. Et un nouveau programme d'exemple fait son apparition "lines" :


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

Citer : Posté le 13/01/2019 20:10 | #


magnifique!!!
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 14/01/2019 09:58 | #


Et là :
- ajout de RanInt# (seulement la version à 2 arguments pour l'instant)
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 14/01/2019 10:34 | #


I'm glad to see the progress of the project.
Will this web interpreter be able to change the execution speed?
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 14/01/2019 11:35 | #


Sentaro21 a écrit :
Will this web interpreter be able to change the execution speed?


Be able to adjust the execution speed is a planned feature !
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 14/01/2019 11:41 | #


Thanks!
I'm looking forward to it.
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 14/01/2019 13:15 | #


14/01/2019 :
- retouche sur PxlTest pour accepter avec et sans parenthèses (et même avec seulement la parenthèse du début)

Ajouté le 14/01/2019 à 14:09 :
Sentaro21 a écrit :
Thanks!
I'm looking forward to it.


A speed adjust button is hidden on the right of the "STOP !" button

And for @Lephenixnoir debug mode is now false by default and a "Debug On/Off" button is hidden ... because I always forget to set debug mode to false before uploading to the public website.... (and Firefox is much much slower when debug mode is On). For information, this debug mode is just console.logging a lot of debug messages.
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Précédente 1, 2, 3, 4, 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 277 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