Poster un nouveau sujet Poster une réponse
[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   Citer 

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 bigmouth.gif ) 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 happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 02 Oct 2011, 11:42   Citer 

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
 Adresse email Haut de page Bas de page 
 
tilo1996



Autorisation : Membre
Nb de messages : 122
Inscrit le : Sam 23 Avr 2011, 10:47
Posté le : Dim 02 Oct 2011, 11:44   Citer 

Argh Sandro tu m'a pris de vitesse tongue.gif Mais mon post était moins detaillé bigmouth.gif

 Adresse email Haut de page Bas de page 
 
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   Citer 

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
 Adresse email Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Lun 03 Oct 2011, 18:10   Citer 

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 happy.gif

----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 03 Oct 2011, 19:53   Citer 

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
 Adresse email Haut de page Bas de page 
 
azerty1



Autorisation : Membre
Nb de messages : 438
Inscrit le : Dim 12 Déc 2010, 20:44
Posté le : Lun 03 Oct 2011, 20:32   Citer 

quelqu'un pourrait peut etre déplacé ça dans la section Articles non..?

----------------------
Ti-Connect 64bits
PROTECT
 Adresse email Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Lun 03 Oct 2011, 21:29   Citer 

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 bigmouth.gif

----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes