Page 1 sur 1

Optimisation de ligne de code

Message non luPosté: 23 Déc 2016, 12:19
de warrior6217
je cherche a optimisé cette ligne de code :

Lbl 4
Texte(25,5,"Je souhaite partager
Texte(32,5,"avec vous quelque unes
Texte(39,5,"des découvertes
Texte(46,5,"astronomique de mon
Texte(53,5,"peuple.
Pause
Texte(25,5,"1)oui____________________________________________________
Texte(32,5,"___________________________________________________________________________
Texte(39,5,"2)non_______________________________________________________
Texte(46,5,"_____________________________________________________________________
Texte(53,5,"_______________________________
Lbl D
getKey→K
If K=92:P+3→P
If K=92:Z+2→Z
If K=92:E-4→E
If K=92:Goto 01
If K=93:P-3→P
If K=93:E+4→E
If K=93:Goto 01
If K=45:Goto 4
If K≠92 et K≠93 et K≠45:Goto D

car je voudrais faire un programme "Raigns" le jeu et mon sistéme de question prend beaucoup de place.

Information :
-les variable E;P;Z c'est les caractéristique Eglise Peuple et Armée ( les point )

-
Pause
Texte(25,5,"1)oui____________________________________________________
Texte(32,5,"___________________________________________________________________________
Texte(39,5,"2)non_______________________________________________________
Texte(46,5,"_____________________________________________________________________
Texte(53,5,"_______________________________
ici les point c pour montré ou les "_" c pour montré le espce pour effacer le texte :
Texte(25,5,"Je souhaite partager
Texte(32,5,"avec vous quelque unes
Texte(39,5,"des découvertes
Texte(46,5,"astronomique de mon
Texte(53,5,"peuple.
car je n'est pas trouvé d'autre solution. si il y en a une autre solution je suis preneur

-et je suis sur TI-82 Advanced.

Merci de me répondre

Re: Optimisation de lignes de code

Message non luPosté: 23 Déc 2016, 12:27
de V0id
Salut, c'est quoi comme jeu ?
Sinon, au lieu de
Code: Tout sélectionner
If K=92:P+3→P
If K=92:Z+2→Z
If K=92:E-4→E
If K=92:Goto 01

tu peux faire directement
Code: Tout sélectionner
If K=92
Then
P+3->P
Z+2->Z
E-4->E
Goto 01
End

Re: Optimisation de ligne de code

Message non luPosté: 23 Déc 2016, 12:31
de warrior6217
merci.
et reigns et un jeu ou tu et un roi et tu doit vivre le plus longtemps en fonction de tes choix

Re: Optimisation de ligne de code

Message non luPosté: 23 Déc 2016, 12:31
de V0id
Ah oui, je crois que amixem y avait joué

Re: Optimisation de lignes de code

Message non luPosté: 23 Déc 2016, 12:38
de critor
Bonjour.

Dans la deuxième partie, voici quelques factorisations/simplifications des Goto, sachant que sur ton modèle la taille du code est à compter en mots et non en caractères :
Code: Tout sélectionner
Lbl D
0
While Rep≠92 et Rep≠93 et Rep≠45
getKey
End
Rep→K
If K=92
Then
P+3→P
Z+2→Z
E-4→E
End
If K=93
Then
P-3→P
E+4→E
End
If K=92 ou K=93:Goto 01
If K≠45:Goto D
Goto 4


Dans la première partie, on peut exploiter la commande Menu( si son affichage te convient, ce qui de plus t'évitera d'avoir à effacer l'écran en écrivant plein d'espaces :
Code: Tout sélectionner
Lbl 4
Texte(25,5,"Je souhaite partager
Texte(32,5,"avec vous quelque unes
Texte(39,5,"des découvertes
Texte(46,5,"astronomique de mon
Texte(53,5,"peuple.
Pause
Menu("","oui",MO,"non",MN
Lbl MO
92→K
Goto MF
Lbl MN
93→K
Lbl MF
If K=92
Then
...

Re: Optimisation de ligne de code

Message non luPosté: 23 Déc 2016, 12:48
de warrior6217
merci pour la 1er optimisation mais sur la 2eme j'aimerais ne pas faire de menu ni de rajouté de Lbl, j'aimerais resté sur le graphique.

Re: Optimisation de ligne de code

Message non luPosté: 23 Déc 2016, 13:02
de critor
Ok.
Voici une autre simplification de la 2ème partie, où il n'y a même plus besoin du Lbl D : :)
Code: Tout sélectionner
0
While Rep≠92 et Rep≠93 et Rep≠45
getKey
End
Rep→K
If K=45
Goto 4
If K=92
Then
P+3→P
Z+2→Z
E-4→E
Else
P-3→P
E+4→E
End
Goto 01

Re: Optimisation de ligne de code

Message non luPosté: 23 Déc 2016, 13:06
de critor
Et dans le cas particulier de tes valeurs, voici une grosse optimisation supprimant tous les If/Then/Else :
Code: Tout sélectionner
0
While Rep≠92 et Rep≠93 et Rep≠45
getKey
End
Rep→K
If K=45
Goto 4
P+6(92.5-K→P
E-8(92.5-K→E
Z+2(K=92→Z
Goto 01

Re: Optimisation de ligne de code

Message non luPosté: 23 Déc 2016, 14:05
de warrior6217
merci beaucoup pour la 2eme solution.
est-ce que tu peut m’expliquè comment fonctionne le système des point?

Re: Optimisation de ligne de code

Message non luPosté: 23 Déc 2016, 14:30
de critor
Si K=92, on a :
92.5-K=0.5
6(92.5-K=3
-8(92.5-K=-4

Si K=93, on a :
92.5-K=-0.5
6(92.5-K=-3
-8(92.5-K=4

Donc additionner ces expressions rajoute ou enlève bien 3 ou 4 comme tu faisais. :)

Enfin, l'expression K=92 sur ton modèle vaut 1 si il est vrai que K=92, et 0 sinon.
2(K=92 vaut donc 2 ou 0.
Additionner cette expression rajoute bien 2 dans le seul cas où K=92. :)