Posté le 11/07/2012 15:55
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 85 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
Citer : Posté le 11/07/2012 15:59 | #
Pas à ma connaissance. Utilise une liste dans ce cas, ça sera plus simple
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 11/07/2012 16:04 | #
Merci, justement, c'est pour compresser encore les niveaux de Lumière, Au lieu d'écrire 14, j'écris D, et hop 1 octet en plus, fois 2, fois le nombre de bloc, je gagne 700.
Je n'utilise donc pas les listes
Citer : Posté le 11/07/2012 16:31 | #
pas besoin d'une astuce fais le manuellement et tu gagneras quand même en octets non ?
Citer : Posté le 11/07/2012 16:42 | #
Utilise les chaines de caractères (Str) comme variables.
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 11/07/2012 17:41 | #
Pourquoi 10->A+1->B+1->C ne marche pas ?
En C tu fais C=B++=A++=10 je crois que ça marche.
Citer : Posté le 11/07/2012 18:02 | #
J'ai essayé avec les strings, mais pas possible ou alors trop complexe pour ça, je vais le faire à la main, j'y gagne quand même beaucoup. Merci quand même
Citer : Posté le 11/07/2012 19:43 | #
Sinon tu peux mettre un nombre comportant jusqu'à 30 chiffres dans une seule variable/case de matrice/case de liste avec les nombres complexes...
Tu peux exploiter ça en appelant ensuite un petit sous-programme qui te dispatche ces chiffres dans tes différentes variables !
Je pense que le gain peut être intéressant...
Jusqu'à quelle lettre vas-tu ? Combien ont de chiffres les nombres que tu stockes dans ces variables ?
Exemple rapide sans nombres complexes :
Imaginons qu tu as 3 nombres de deux chiffres chacun à dispatcher dans 3 variables A, B et C. Tu peux insérer ces trois nombres en un seul comme ceci :
101112 -> X
Puis appeler un sous-programme comme celui-ci :
X/E4
Int Ans -> A
Int (E2xFrac Ans -> B
Int (E2xFrac E2Ans -> C
Chez moi ce programme ne pèse que 28 octets...
Au bout de 5 niveaux, pour cet exemple, ce système est "rentable", je viens de vérifier...
Et comme tu possèdes certainement davantage de niveaux et de variables, je te propose d'essayer cette méthode !
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 11/07/2012 20:26 | #
Il faudrait faire un tuto sur les complexes aussi un jour.
Citer : Posté le 11/07/2012 21:19 | #
Il suffit d'avoir un seul nombre complexe dans une matrice pour multiplier sa taille par 2.
Comme pour une simple variable.
Je ne stock rien dans ma matrice à part l'ID de l'objet.
Cette technique je l'utilise pour mon projet Age of Empire, ou une case de matrice enregistre l'ID, le camps, l'action en cours, les coordonnées de cette action, et la vie : ID,AXYLIFE
Ici je demande pour enregistrer les niveaux de Lumière, ils sont enregistrés dans une string de cette manière, XXYIDXXYIDXXYID..., chaque bloc est placé sur 5 octets. 2 pour les X (car compris entre 1et 19), 1 pour les Y et 2 pour l'ID de l'objet. Mais maintenant j'ai réussis à compresser d'avantage en remplacant le 10 par A, le 11 par B, du coup chaque bloc fait que 3 octets. Et quand je crée le niveau en décomposant ma string :
"A"->Str 2
10->A:11->B
Exp(Str 2)
Exp() me renvoie 10
Ce que je demandais, c'était juste pour éviter 10->A:11->B:12->C...
Mais en faite ca prend pas grand chose comme je vais jusqu'a J
Citer : Posté le 12/07/2012 00:02 | #
Tu utilises 10 variables pour stocker les nombres de 10 à 19 ?
Il ne serait pas plus pratique d'utiliser une liste et de la générer avec Seq ?
Seq(A,A,10,19,1)->List 1
Citer : Posté le 12/07/2012 00:32 | #
Non, justement je fais ça pour économiser des octets.
Je viens de finir de modifier tout les niveaux, j'ai gagné 560 octets