| [ASTUCES] Simplification de code |
| Auteur |
Message |
snap
Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
|
Posté le : Sam 01 Oct 2011, 22:59
|
|
|
Salut! J'ai créé ce sujet pour les gens qui ont des petites astuces pour alléger un programme, je ne savais pas si ce sujet avait déjà été créé et je n'en ai pas trouvé alors excusé moi si il existe déja. Pour ma part, j'ai trouver un calcul qui, lorsque vous appuyer sur les chiffres de 1 à 9 en code touche, vous donne la valeur du chiffre que vous vouliez dans une variable. Sa peut aider dans certains programmes.
Avant j'avais l'habitude de marquer ça : ( C est la variable choisie)
| Code | :codeTouche -> K
:If PartEnt(K/10)=7 : K-71 -> C
etc... |
J'ai cherché ( en cour de français ) et j'ai trouver sa, qui donne le même résultat :
| Code |
:codeTouche -> K
:10partDec(K/10)-1+3(9-PartEnt(K/10 -> C
|
C'est beaucoup moins long et ça allège le programme. Alors si jamais d'autres personnes ont des autres astuces, vous pourrez les mettre dans ce sujet et en faire profiter tout le monde.
Snap.
---------------------- Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes 
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr |
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Dim 02 Oct 2011, 11:42
|
|
|
Il y en a un assez connu (souvent utile pour les jeux dans le déplacement) :
| Code | If K=24
X-1 -> X
If K=25
Y+1 -> Y
If K=26
X+1 -> X
If K=34
Y-1 -> Y |
(et j'en passe des then et des End que mettent aussi certains)
Avec K étant par example le résultat d'un Getkey
Devient
| Code | X-(K=24)+(K=26 -> X
Y-(K=34)+(K=25 -> Y |
Sandro
PS : si il ce rajoute quelques azstuces, il serrait peut-être intérécent de le mettre en article
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |
tilo1996
Autorisation : Membre
Nb de messages : 122
Inscrit le : Sam 23 Avr 2011, 10:47
|
Posté le : Dim 02 Oct 2011, 11:44
|
|
|
Argh Sandro tu m'a pris de vitesse Mais mon post était moins detaillé 
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Dim 02 Oct 2011, 13:18
|
|
|
Je viens de recréer ceci, que j'avais déjà fait longtemps avant mais pas retrouvé.
| Code | K-10+9(K=26->K
10fPart(K/10)+5int(K/10->N |
N prend alors des valeurs de 1 à 50 selon la touche pressée.
On peut alors employer facilement une liste pour traîter des données dépendantes des touches.
Défauts actuels :
-la touche 26 devient l'équivalent d'une hypothétique touche 35. (N=15)
-N sera toujours différent de 46 à cause de la touche ON.
Je n'ai pas encore prévu comment décaler des valeurs pour que les touches soient dans l'ordre de 1 à 49.
======
Certains compliquent des tests parce que sinon le prog continue à travailler sans qu'on y touche.
D'autres ont la malice de faire une boucle comme celle-ci, mais manquent d'optimisation.
| Code | DelVar K
While K=0
getKey->K
End |
Eh bien voici quelques astuces dont une liée directement à mon article sur les tests.
| Code | Repeat K // suffit amplement
getKey->K
End |
Ici, le programme attend qu'on appuie sur les flèches, et seulement les flèches.
Et on peut facilement créer une liste de touches valides ou non.
| Code | Repeat max(K={24,25,26,34
getKey->K
End |
Vous pouvez éventuellement faire ceci mais cela pose des questions de fermetures de boucles.
Ici la touche 103 permet de continuer et toutes les autres touches envoient au Lbl 0.
Vous pouvez pratiquer d'autres tests si vous tenez à employer plusieurs Lbl ou touches
| Code | Repeat K=103
getKey->K
If K-103
Goto 0
End |
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
snap
Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
|
Posté le : Lun 03 Oct 2011, 18:10
|
|
|
Hey! Je viens de trouver une nouvelle simplification (merci copter de cam! XD)
Dans un jeu, du genre space ou il faut aller de haut en bas pour tirer, souvent pour ne pas dépasser l'écran, je mettais :
| Code |
:codeTouche -> K
:Y+(K=34)-(K=25 -> Y
:If Y=0 : 1 -> Y
:If Y=9 : 8 -> Y
|
Et grâce à Cam! ^^ J'ai trouver ça :
| Code |
:codeTouche -> K
:min(8,max(1,Y+(K=34)-(K=25 -> Y
|
Voila 
---------------------- Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes 
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr |
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Lun 03 Oct 2011, 19:53
|
|
|
HéHé, c'est grâce à moi que cette astuce est dans Copter.
L'exemple le plus ancien que je connaisse de cette astuce est le "Démineur SP" de coc5.
Je croyais avoir mis cette astuce dans mon article sur les tests.
J'ai vérifié et elle n'y est pas.
Puisque le sujet ici présent prend forme, on en fera certainement un article plutôt que de bourrer le mien avec ça.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
azerty1
Autorisation : Membre
Nb de messages : 438
Inscrit le : Dim 12 Déc 2010, 20:44
|
Posté le : Lun 03 Oct 2011, 20:32
|
|
|
quelqu'un pourrait peut etre déplacé ça dans la section Articles non..?
---------------------- Ti-Connect 64bits
PROTECT |
 |
|
| |
snap
Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
|
Posté le : Lun 03 Oct 2011, 21:29
|
|
|
Déolé linkakro, j'ai vu l'astuce sur copter alors je me suis dit : c'est cam! XD
Si un modérateur se connecte, wé faudra qu'il le mette dans article^^ Je savais pas trop où le mettre au départ 
---------------------- Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes 
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr |
 |
|
| |