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 » [BASE Basic] *Entering Brainfuck mode* (petits programmes en mode BASE)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

[BASE Basic] *Entering Brainfuck mode* (petits programmes en mode BASE)

Posté le 04/09/2020 13:42

Salut vous ! Sur cette page je tenterai de répertorier les programmes créés en utilisant le mode BASE du Basic Casio de nos calculatrices, connu pour être notablement limité et forçant l'utilisation des Lbl/Goto.

Présentation du mode BASE
Pour créer un programme dans ce mode, se rendre dans l'application PRGM, créer un nouveau programme [F3] puis sélectionner le mode BASE [F2]. Rentrez un nom, pressez EXE, et voila, vous pouvez programmer.
Les fonctions sont réduites au minimum, l'affichage est limité à des chaînes de caractères (fixes, dû au manque de Str) et variables numériques (avec ◢).
Les programmes dans ce mode sont horribles à écrire, infâmes à lire et lents à exécuter. Ils ont tout pour plaire :3


Commençons par un port du légendaire Dumb Clicker par moi même.
Je vous présente, Dumb Clicker B.A.S.E. (Best Application Created, Ever)
Tout ce qui suit les // sont des commentaires, ne les recopiez pas !
-1 //initialise la variable Ans à -1
Lbl 0 //un label, BASE étant dépourvu de boucles nous n'avons pas le choix
Ans+1◢ //la valeur de Ans est augmentée de 1 puis affichée, avant de mettre le programme en pause
Goto 0 //retour au Lbl 0, une boucle artisanale

Sans commentaires :
-1
Lbl 0
Ans+1◢
Goto 0

Hum on se régale, quel plaisir.

Continuons avec un mini jeu classique, le plus ou moins deux joueurs ! Sans aléatoire nous ne pourrons pas faire de mode 1 joueur
" Plus ou moins ULTIME" //on commence par afficher le "menu"
"Entrez le nombre a faire deviner"
?→S //seul autre moyen avec ◢ d'obtenir une entrée utilisateur, ? demande au joueur d'entrer un nombre et le stocke dans une variable, ici S
0→T //compteur du nombre d'essais
"" //on vide l'écran pour masquer la solution
""
""
"Donnez la calto au"
"joueur 2"
Lbl C //la boucle principale
Isz T //incrémente le compteur d'essais
?→G //le nombre deviné par le joueur 2
G=S⇒Goto Z //si le nombre correspond à la solution, on termine le programme en sautant à la fin
G>S⇒Goto P //sinon, si le nombre deviné est supérieur à la solution on saute à P
"Plus" //si les deux conditions sont fausses, alors G<S et on affiche "Plus"
Goto C //retour au début de la boucle
Lbl P //voir la condition G>S plus haut
"Moins"
Goto C
Lbl Z //label de sortie
"Trouve en ce nombre   d'essais" //on affiche le nombre d'essais
T

Et sans commentaire.
" Plus ou moins ULTIME"
"Entrez le nombre a faire deviner"
?→S
0→T
""
""
""
"Donnez la calto au"
"joueur 2"
Lbl C
Isz T
?→G
G=S⇒Goto Z
G>S⇒Goto P
"Plus"
Goto C
Lbl P
"Moins"
Goto C
Lbl Z
"Trouve en ce nombre   d'essais"
T

Ce sera tout, passez une bonne journée

Hexa Treasure Hunt, nominé aux Game Awards 2020. Voir le programme.


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

Citer : Posté le 04/09/2020 14:15 | #


Voici "Hexa Treasure Hunt", le prochain grand hit de Planète Casio. Vous êtes un 1 sur une map de 8x4 et vous devez attraper la pièce d'or.

Avec tous vos moves favoris, sortir d'une boucle avec Dsz, faire de la logique booléenne avec le and bit-à-bit, et surtout du fun à plus savoir où en mettre ! Wooooh !

Hex
1→X:3→Y
Lbl 0

X→T
10000000→Z
Lbl 1
Z÷10→Z
Dsz T
Goto 1

// Le C ci-dessous est un C hexa, taper avec la touche [ln]
80000C08+Z(Y=0)◢
80000008+Z(Y=1)◢
80000008+Z(Y=2)◢
80000008+Z(Y=3)◢

""
"Direction (8462)"?→E

Y-(E=8)(Y>0)+(E=2)(Y<3)→Y
X-(E=4)(X>1)+(E=6)(X<6)→X

(Y=0)and(X=5)⇒Goto 9
Goto 0

Lbl 9
""
""
""
"   You are now rich"
""
""
""

Instructions : à chaque tour, mashez EXE puis tapez 8, 4, 6 ou 2 pour vous déplacer.
Durée de vie : entre 40 et 50 heures.
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: 3011 Défis: 11 Message

Citer : Posté le 04/09/2020 14:35 | #


Wow c'est magnifique :o
Merci pour le partage Lephé !
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 04/09/2020 14:36 | #


À quand Noon BASE du coup ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tituya Hors ligne Administrateur Points: 2141 Défis: 26 Message

Citer : Posté le 04/09/2020 14:43 | #


J'attends Calcraft BASE perso
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 04/09/2020 14:52 | #


Je vois d'ici un jeu d'adresse type archer : "Arrow-B@se".

Mais où mènera ce topic ? Une contrainte 1kBCJxxx ?

Pourvu qu'aucun nouveau développeur ne tombe sur cette page !
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Lephenixnoir En ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 04/09/2020 14:54 | #


Sans vouloir ruiner ton idée Ne0', le caractère "@" est inaccessible en mode BASE.

Edit : je crois que ce topic vient de l'idée lancée tout à l'heure sur la shout de faire un 1kBCJ en mode BASE. x)
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: 3011 Défis: 11 Message

Citer : Posté le 04/09/2020 15:13 | # | Fichier joint


Lephenixnoir a écrit :
À quand Noon BASE du coup ?

Challenge accepted. Vu que le programme est hyper long à recopier je met le .g2m en fichier joint. C'est à peu près la même chose que ton jeu, en encore plus vide et affichage textuel.
J'ai exporté le programme depuis la calto, les * ont été dédoublées.
'ProgramMode:BASE
10->X
3->Y
Lbl L
1->A
Lbl M
A<>Y=>",,,,,,,,,,,,,,,,,,,,,"
A<>Y=>Goto 2
X=1=>"**,,,,,,,,,,,,,,,,,,,,"
X=2=>",**,,,,,,,,,,,,,,,,,,,"
X=3=>",,**,,,,,,,,,,,,,,,,,,"
X=4=>",,,**,,,,,,,,,,,,,,,,,"
X=5=>",,,,**,,,,,,,,,,,,,,,,"
X=6=>",,,,,**,,,,,,,,,,,,,,,"
X=7=>",,,,,,**,,,,,,,,,,,,,,"
X=8=>",,,,,,,**,,,,,,,,,,,,,"
X=9=>",,,,,,,,**,,,,,,,,,,,,"
X=10=>",,,,,,,,,**,,,,,,,,,,,"
X=11=>",,,,,,,,,,**,,,,,,,,,,"
X=12=>",,,,,,,,,,,**,,,,,,,,,"
X=13=>",,,,,,,,,,,,**,,,,,,,,"
X=14=>",,,,,,,,,,,,,**,,,,,,,"
X=15=>",,,,,,,,,,,,,,**,,,,,,"
X=16=>",,,,,,,,,,,,,,,**,,,,,"
X=17=>",,,,,,,,,,,,,,,,**,,,,"
X=18=>",,,,,,,,,,,,,,,,,**,,,"
X=19=>",,,,,,,,,,,,,,,,,,**,,"
X=20=>",,,,,,,,,,,,,,,,,,,**,"
X=21=>",,,,,,,,,,,,,,,,,,,,**"
Lbl 2
Isz A
A=6=>Goto 1
Goto M
Lbl 1
?->K
K=4=>Dsz X
K=6=>Isz X
K=8=>Dsz Y
K=2=>Isz Y
X=0=>21->X
X=22=>1->X
Y=0=>5->Y
Y=6=>1->Y
K<>0=>Goto L

ouais ouais
Lephenixnoir En ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 04/09/2020 15:18 | #


C'est pas très paramétrique tout ça. Moi je peux changer le caractère du joueur et modifier des choses sur la map au fur et à mesure.

Accepté du reste. Tu sais pourquoi ça affiche de travers au premier frame ?
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: 3011 Défis: 11 Message

Citer : Posté le 04/09/2020 15:26 | #


Lephenixnoir a écrit :
C'est pas très paramétrique tout ça. Moi je peux changer le caractère du joueur et modifier des choses sur la map au fur et à mesure.

Accepté du reste. Tu sais pourquoi ça affiche de travers au premier frame ?

Aucune idée, ça a l'air aléatoire (si j'ajoute du texte avant le premier affichage ça décale différemment).

A noter que le mode BASE a l'air de supporter beaucoup de commandes du Basic classique, j'ai réussi à utiliser des Str et Locate sans problème. Je considère que c'est de la triche vu que ça retire toutes les limitations intéressantes, mais ça veut dire que l'inverse devrait être possible aussi. A creuser.
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 04/09/2020 15:27 | #


Tu veux dire en insérant les opcodes de force ? Oui je pense que ça avait été testé.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)

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 83 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