[Astuce Inutile] Goto, Str et Deux points
Posté le 27/02/2016 22:00
Ce qu'il faut savoir en quelques mots :
Ce qui est entre guillemets sur Calculatrice est exécutable.
On peut y accéder par un Goto, mais uniquement si c'est situé après un => : il faut que l'interpréteur croit qu'on n' arrive pas au milieu d'une instruction (sinon bam, erreur saut) mais bien au début d'une nouvelle.
Le => permet de bypasser la vérif' de l'interpréteur, qui grosso modo va se dire "oh un => !", et va chercher l'instruction qui vient juste après l'instruction qui suit => sans plus réfléchir au contenu qu'il a sauté... C'est d'ailleurs pour ça qu'il faut commencer la chaîne de caractère par deux points : l'interpréteur est persuadé que c'est ce qui vient après la conséquence.
Après on peut enchaîner les instructions en sautant des lignes, ou en utilisant les deux points (ce qui laisse la chaîne sur une ligne, c'est un peu plus joli)
Un exemple simple :
1[b]->[/b]A
[b][blue]While[/blue][/b] [maroon]1[/maroon]
[b][brown]Locate[/brown][/b] [maroon]1[/maroon],[maroon]1[/maroon],A
Not A⇒[gray]":[red]Lbl[/red] [maroon]1[/maroon]:[b][blue]Isz[/blue][/b] A:[b][blue]WhileEnd[/blue][/b]:"[/gray]
[red]Goto[/red] [maroon]1[/maroon]
Et après on peut s'amuser :
Ici, un coup le code est un string, un autre coup il est exécuté....etc
1[b]->[/b]A
[b][blue]While[/blue][/b] [maroon]1[/maroon]
-A[b]->[/b]A
A>0⇒[red]Goto[/red] [maroon]1[/maroon]
A<0⇒StrRotate([gray]":[red]Lbl[/red] [maroon]1[/maroon]:[b][blue]Isz[/blue][/b] A:[b][brown]Locate[/brown][/b] [maroon]1[/maroon],(A Rmdr [maroon]7[/maroon])+1,Str [maroon]1[/maroon]:[b][blue]WhileEnd[/blue][/b]:"[/gray],A[b]->[/b]Str [maroon]1[/maroon]
[b][blue]WhileEnd[/blue][/b]
Vous noterez le double WhileEnd 8)
C'est magnifique, et complètement inutile.
Allez, la bise.
Citer : Posté le 27/02/2016 22:01 | #
Bien mieux
Citer : Posté le 27/02/2016 22:13 | #
Inutile, donc indispensable.
Bien mieux
+1
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 27/02/2016 22:39 | #
On pourrait limite écrire du code via un programme grâce a ça
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 28/02/2016 08:41 | #
Oups, j'ai cru un instant qu'on pouvait exécuter une Str avec ça ^^' (je crois pas que Exp() fonctionne si ?)
Sympa comme astuce cependant, ça montre bien à quel point l'interpréteur n'a pas sécurisé les sauts inconditionnels
Citer : Posté le 28/02/2016 09:24 | #
Exp() ne fonctionne qu'avec un calcul
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 28/02/2016 14:23 | #
Qu'est-ce que tu appelles "une conséquence" ?
Citer : Posté le 28/02/2016 14:59 | #
Une conséquence, une implication, un double flèche quoi
=>
Je suis allé acheter du pouvoir au Super-U mais il ne restait que du Cajoline.
Citer : Posté le 28/02/2016 15:07 | #
Une conséquence, une implication, un double flèche quoi
=>
C'est quand-même pas tout à fait pareil. Une double flèche est une commande Basic, une conséquence est le résultat logique d'une action. Quand tu écris pour être lu, tu fais en sorte que tout le monde partage ton langage, on se fiche de savoir si tu te comprends toi-même.
Citer : Posté le 01/03/2016 08:12 | #
ça permet de mettre plus d'une instruction après la double flèche ! J'adore cette astuce !
Citer : Posté le 19/09/2016 17:48 | #
Soit dit-en passant, c'est cool pour obfusquer son code
Citer : Posté le 09/11/2020 19:44 | #
Cette astuce, est-elle toujours valable pour les Graph 35+EII?
Citer : Posté le 09/11/2020 19:46 | #
Oui.