Avoir 40 Str supplémentaires
Posté le 15/10/2013 16:34
Voilà une astuce que je viens de découvrir par hasard aujourd'hui mais qu’apparemment certains connaissent déjà
Introduction :
Il est possible d'entrer des fonctions dans la calculette (depuis GRAPH ou TABLE par exemple).
Celles-ci peuvent contenir n'importe quels caractères et sont donc utilisables comme des Str.
Elles fonctionnent de la même manière et on donc une longueur maximale qui varie entre 127 est de 255 caractères (tout dépend si on utilise des caractères spéciaux qui pèsent 2 octets au lieu d'un ou non).
Utilisation :
Il existe deux possibilités, chacune donnant accès à 20 Str
- Pour la première il faut utiliser ce signe :
(VARS -> GRPH -> F1)
Pour enregistrer une chaine de caractères il faut faire comme avec les Str classiques.
Par exemple : "ABCD"→Y1 ou Str 1->Y3
Le nombre derrière Y doit être comprit entre 1 et 20
- Pour la seconde il faut utiliser "fn"
(OPTN -> FMEM -> F3)
Le principe est le même qu'avec Y, fn doit être suivit d'un nombre entre 1 et 20
Dans les deux cas le texte enregistré n'est pas utilisable directement.
Il faut l'extraire avec la fonction "Exp>Str(Yx,Str x)" qui transforme le contenu de Yx en texte et le sauvegarde dans la Str x
Exemple d'utilisation :
"PLANET"->Y1
"CASIO"->fn1
Exp>Str(Y1,Str 1)
Locate 1,1,Str 1
Exp>Str(fn1,Str 1)
Locate 1,2,Str 1
J'espère vous avoir appris quelque chose et que ça vous servira
Si vous avez d'autres astuces pour ces fonctions n'hésitez pas ...
Citer : Posté le 16/10/2013 18:39 | #
oui je remettais à jour cette astuce
Zelda de Smashmaster
Super Geek Brothers de Siapran
Pac-Man
Pac-Man Color
Meta Ball
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Citer : Posté le 16/10/2013 22:03 | #
Hey remiweb :idea: pourquoi, à la place de faire une map plus grande (encore ) sur Calcraft, tu ne pourrais pas faire en sorte que le joueur puisse faire 2 parties différentes
Pour cela, tu enregistres une parties dans les fns et l'autre dans les Y, puis au moment de choisir sa partie, en fonction de la partie 1 ou 2, tu converties soit les fns soit les Y en Str
Mais je viens d'y penser, on ne pourrai plus rentrer de formules graphiques ou de fns... en plus en ce moment je suis en train d'apprendre à me servir des Y en math
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 17/10/2013 20:01 | #
Et tout ça va peut-être me permettre de faire du multi-monde dans calcraft
Premier post sur ce topic
J'ai discuté de l'agrandissent de la map ou du multi-monde par mp il y a quelques jours :
Je pense faire un monde en créatif et un en survie (et ça éviterais les cheats)
Utiliser les Y c'est gênant, mais je sais pas pour les fn, elles servent à quoi en temps normal ?
Citer : Posté le 17/10/2013 20:41 | #
C'est un bon raisonnement, les fns ne servent pas à grand choses, sauf pour les jeux avec des créateurs de niveaux
Donc je pense que tu peux les utiliser sans gros problèmes.
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
Citer : Posté le 31/12/2014 00:03 | #
Message supprimé pour grosses anneries
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 31/12/2014 12:49 | #
Oui mais non, Y1/r1/Xt1/... correspondent à la même chaîne et c'est simplement le type qui sera changé dans les menu "graph"
Citer : Posté le 31/12/2014 12:52 | #
Ah... Je viens de tester... t'as raison... ZUT !
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 03/05/2016 13:17 | #
On peut aussi en rajouter 6 avec les f1~6 qui se trouvent quasi tout en bas du catalogue
La technique est la même que pour les autres str du tuto.
Citer : Posté le 01/09/2016 07:00 | #
Selon le manuel de casio il est aussi possible de faire ça avec les fonctions récurrentes(an, an+1, an+2, pareil pour bn et cn), ce qui fait 9 strings de plus.
Ajouté le 01/08/2017 à 16:38 :
On peut en fait avoir jusqu'à... 19 + 20 + 9 + 40*20 = 848 strings ! (oui oui)
On a tout d'abord les 19 strings avec Str 1-19 (on réserve le 20 pour le Exp->Str).
Ensuite, on a les strings avec fn1-20 (j'ai vérifié, les opcodes f1-6 font la même chose que fn1-20) et les fonctions récurrentes ([abc]n/n+1/n+2).
Il reste ensuite les strings du Graph. Remiweb l'a fait avec X, mais si on regarde dans le menu on voit 5 opcodes : Y, r, Xt, Yt, X.
Ces opcodes permettent de définir un type de fonction pour chacune des 20 fonctions. Dans le menu Graph, si on sélectionne Type -> Parm (F3,F3) on voit que chacune des 20 fonctions se déclinent en équations Xt= et Yt=. Ca multiplie par 2, nous donnant 40 strings accessibles avec Xt et Yt.
Avant que vous demandiez "mais pourquoi ça multiplie pas par 5, on peut avoir X1, Y1, r1, Xt1, Yt1", chaque fonction ne peut être que d'un seul type. Si vous faites "test"->X1 ça change le type de la fonction graph 1 en "X=", et si vous aviez fait auparavant "abc"->Y1 ça l'overwrite, donc on ne peut en avoir que 40.
En potassant le manuel j'ai découvert les GMEM, utilisables avec StoGMEM et RclGMEM (comme les pictures). Ces GMEM sont au nombre de 20 et permettent de stocker les fonctions graphiques. On a donc 40*20 = 800 strings potentiels
Remiweb parlait d'une sauvegarde de monde, avec ça il est très facile de faire 21 slots de sauvegarde (graph + Fn) puis de les charger dans les 20 strings.
Par contre je ne conseille pas l'agrandissement du monde car le code devra être différent : on ne peut pas performer des actions directement sur ces strings, donc au lieu de faire StrRotate(X1, 1) il faudra faire Exp->Str(X1, Str 20) : StrRotate(Str 20, 1) : Str 20->X1, du coup ça risque de laguer plus :/
À noter qu'on ne peut toujours pas appeler ces strings par des variables : faire 1->A puis "test"->FnA fera une erreur syntaxe ;-;
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 01/08/2017 16:51 | #
À noter qu'on ne peut toujours pas appeler ces strings par des variables : faire 1->A puis "test"->FnA fera une erreur syntaxe ;-;
Eh oui, parce que Fn et Str ont une structure syntaxique très simple, avec des entiers littéraux comme arguments.
L'un des plus grands défauts de notre référence Basic est de ne pas avoir su noter ces informations. Par exemple, la différence fondamentale entre Str et File, le premier n'acceptant que les entiers littéraux, le second tout type d'expression s'évaluant en un entier compris entre 1 et 6 au sens large. C'est ça qui va compter quand on va écrire des programmes.
Citer : Posté le 01/08/2017 19:51 | #
Quelques benchmarks pour évaluer s'il est faisable d'utiliser ces strings pour un usage normal (par exemple, pour agrandir la map dans Calcraft).
J'ai mesuré combien de temps il faut pour faire 200 itérations de :
Bien sûr, le test avec les Str normaux ne contient que le StrRotate.
On a :
Strings normaux : 267ms
Strings graphiques (Xt, Yt) : 5467 ms
Strings fonctions (fn1 ou f1) : 1133 ms
Strings récurrence ([abc]n/n+1/n+2) : 3133 ms
À +/- 50 ms.
Du coup on ne peut pas vraiment utiliser ces strings pour autre chose que du stockage, à moins de vouloir un lag au moins 4 fois plus grand. :/
Ecrivez vos programmes basic sur PC avec BIDE