S.L le 09/07/2012 à 10:14
Voici un jeu où il faut appuyer le plus de fois sur enter/entrer dans un temps limité.
Nom: ENTER
Taille: 263 octets
Auteur: S.L
-> : flèche sto
<= : signe inférieur ou égal
TI Stats.fr (fonctions en Français)
Code
PROGRAM:ENTER
:EffEcr
:Output(4,4,"COMMENCER
:Pause
:0->C
:10->D
:EffEcr
:While 1
:Output(2,2,"APPUYEZ
:Output(3,2,"SUR ENTER!
:Output(4,2,C
:codeTouche->K
:If K=105
:C+1->C
:If K=45:Then:EffEcr:Stop:End
:If D=0 et C>50:Then:EffEcr
:Disp "BRAVO TU","ES UN VRAI GEEK!","SCORE:",C
:Pause
:Stop
:End
:If D=0 et C<=50:Then:EffEcr
:Disp "NEWBIE... SCORE:",C
:Pause
:Stop
:End
:Output(7,2,D
:Output(7,7,"S
:D-0.1->D
:End
Bon jeu à tous!

linkakro le 16/07/2012 à 20:02
Je ne sais pas bien ce qui peut être faux (tant dans le code que dans le recopiage), je trouve plus simple de l'optimiser.
Code
EffEcr
Output(4,4,"COMMENCER
Pause
0->C
10->D
EffEcr
Output(2,2,"APPUYEZ
Output(3,2,"SUR ENTER!
For(D,1,100
Output(4,2,C
codeTouche->K
If K=105
C+1->C
Output(7,2,D/10
Output(7,7,"S
If K=45:Then:EffEcr:Stop:End // facultatif, c'est pour quitter
For(B,1,10 // modifiez le 10 jusqu'à ce que le chrono s'écoule bien en 10s
End
End
EffEcr
If C>50:Then
Disp "BRAVO TU","ES UN VRAI GEEK!","SCORE:
Pause C
End
If C<=50:Then
Disp "NEWBIE... SCORE:"
Pause C
End
snap le 17/07/2012 à 17:44
On peut encore facilement optimiser :
Code
EffEcr
Output(4,4,"COMMENCER
Pause
EffVar C10->D
EffEcr
Output(2,2,"APPUYEZ
Output(3,2,"SUR ENTER!
For(D,1,100
Output(4,2,C
C+(codeTouche=105 -> C
Output(7,2,D/10
Output(7,7,"S
If K=45:Then:EffEcr:Stop:End // facultatif, c'est pour quitter
For(B,1,10 // modifiez le 10 jusqu'à ce que le chrono s'écoule bien en 10s
End
End
EffEcr
If C>50:Disp "BRAVO TU","ES UN VRAI GEEK!","SCORE:
If C<=50:Disp "NEWBIE... SCORE:
Pause C
ld le 25/07/2012 à 11:02
Code
EffEcr
Output(4,4,"COMMENCER
Pause
EffVar C10->D
Output(3,5,"APPUYEZ
Output(4,3,"SUR ENTRER !
For(D,1,100
Output(6,2,C
C+(codeTouche=105 -> C
Output(8,2,D/10
Output(8,7,"S
If K=45:Then:EffEcr:Stop:End // facultatif, c'est pour quitter
For(B,1,10 // modifiez le 10 jusqu'à ce que le chrono s'écoule bien en 10s
End
End
EffEcr
If C>50:Disp "BRAVO TU","ES UN VRAI GEEK!","SCORE: ",C
If C<=50:Disp "NEWBIE... SCORE: ",C
linkakro le 25/07/2012 à 13:56
Concernant la dernière modification, ce n'est pas intéressant de placer un C dans chaque disp (8 octets).
Il est plus intéressant de placer un C à la fin (2octets), sans même de commande Pause ni Disp. (qui donnerait 3 octets)
Cela supprimme au passage l'horible "Fait"
Le 10->D est devenu innutile depuis que j'ai utilisé une boucle For.
C'est un oubli.
Je place donc le EffVar C, proposé par la suite, devant la commande EffEcr pour garder une optimisation mais en restant lisible.
Code
EffVar CEffEcr
Output(4,4,"COMMENCER
Pause
Output(3,5,"APPUYEZ
Output(4,3,"SUR ENTRER !
For(D,1,100
Output(6,2,C
C+(codeTouche=105 -> C
Output(8,2,D/10
Output(8,7,"S
If K=45:Then:EffEcr:Stop:End // facultatif, c'est pour quitter
For(B,1,10 // modifiez le 10 jusqu'à ce que le chrono s'écoule bien en 10sec
End
End
EffEcr
If C>50:Disp "BRAVO TU","ES UN VRAI GEEK!","SCORE:
If C<=50:Disp "NEWBIE... SCORE:
C
Comme la boucle For ne contient que des instructions d'affichage, la variable Rép n'est jamais modifiée par autre chose que la ligne du codeTouche.
Je remplace donc C par Rép.
J'ai cependant un doute.
Code
EffEcr
Output(4,4,"COMMENCER
Pause
Output(3,5,"APPUYEZ
Output(4,3,"SUR ENTRER !
0
For(D,1,100
Output(6,2,Rép
Rép+(codeTouche=105
Output(8,2,D/10
Output(8,7,"S
If K=45:Then:EffEcr:Stop:End // facultatif, c'est pour quitter
For(B,1,10 // modifiez le 10 jusqu'à ce que le chrono s'écoule bien en 10sec
End
End
EffEcr
If Rép>50:Disp "BRAVO TU","ES UN VRAI GEEK!","SCORE:
If Rép<=50:Disp "NEWBIE... SCORE:
Rép
NINJACODEUR-3000 le 15/06/2023 à 14:41
le programme et très bien mais lorsque tu appuie sur entrer à la dernière seconde tu nas pas le temps de voir t'on score
voila la solution:
Code
PROGRAM:ENTER
:EffEcr
:Output(4,4,"COMMENCER
:Pause
:0->C
:10->D
:EffEcr
:While 1
:Output(2,2,"APPUYEZ
:Output(3,2,"SUR ENTER!
:Output(4,2,C
:codeTouche->K
:If K=105
:C+1->C
:If K=45:Then:EffEcr:Stop:End
:If D=0 et C>50:Then:EffEcr
:Disp "BRAVO TU","ES UN VRAI GEEK!","SCORE:",C
:Pause
:Stop
:End
:If D=0 et C<=50:Then:EffEcr
:Disp "NEWBIE... SCORE:",C
:Pause
:Stop
:End
:Output(7,2,D
:Output(7,7,"S
:D-0.1->D
:Pause
:End