Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 1039
Réponses : 6
Type : discussion
Etat : réponses autorisées

Jeu de réflexe pour tous

adrien41 le 07/01/2015 à 12:47
Voici un petit jeu sympas et rapide à tapper:
Code
 Lbl1
ClrHome
Menu(" ","JOUER",J,"QUITTER",Q
Lbl J
ClrHome
While 1
Output(4,4,"*PRETS ?*
PAUSE "PRESSE ENTRER
RandInt(1,8->A
For(I,1,100*A
End
ClrHome
Output(4,6,"GO !
For(I,1,50
End
ClrHome
If not(getkey
Then
Output(5,4,"TROP TARD !
Else
Output(5,6,"BIEN !
End
Pause
Goto 1
Lbl Q
ClrHome
Output (1,1,"
Stop
adrien41 le 07/01/2015 à 20:19
J'ai remarqué en le refaisant qu'en restant appuyé sur Entrer, on gagne tout le temps. Quelqu'un aurais une idée afin de remédier à ce bug? Merci :-)
linkakro le 07/01/2015 à 21:37
Tu dois ajouter un test de touche entre le signal et la temporisation de tolérance afin de contrôler que la saisie ne soit pas trop tôt.
Toutes les touches permettent une pression à l'avance. Les flèches et suppr permettent même la répétition en les maintenant.
adrien41 le 08/01/2015 à 19:57
Petite amélioration:

Code

Lbl1
0->S
ClrHome
Menu(" ","JOUER",J,"QUITTER",Q
Lbl J
ClrHome
While 1
Output(4,5,"PRETS ?
Pause "PRESSE ENTRER
randInt(5,15->A
For(I,1,100*A
If getKey
Then
Disp "TU TRICHE
Pause
Goto 1
End
End
ClrHome
Output(4,8,"GO !
For(I,1,55
End
If not(getKey
Then
Output(5,4,"TROP TARD
Pause "PRESSE ENTRER
Goto 2
Else
Output(5,6,"BIEN !
S+1->S
End
Pause "PRESSE ENTRER
Goto 1
Lbl Q
ClrHome
Output(1,1,"
Stop
Lbl 2
ClrHome
Disp "SCORE:",S
Pause "PRESSE ENTRER
Goto 1
linkakro le 08/01/2015 à 21:10
Tu peux faire plus simple car tu n'as pas besoin de quitter dès qu'une touche est pressée. Par ailleurs utiliser Goto pour sortir d'une boucle et d'une alternative est une mauvaise pratique. Article dans ma signature.

Code
Lbl 1
0->S
ClrHome
Menu(" ","JOUER",J,"QUITTER",Q
Lbl J
ClrHome
Repeat K
 Output(4,5,"PRETS ?
 Pause "PRESSE ENTRER
 randInt(5,15->A
 ClrHome
 For(I,1,100*A
 End
 Output(4,8,"GO !
 getKey->K
 If K
 Then
  Disp "TROP TOT
 Else
  For(I,1,55
  End
  not(getKey->K
  If K
  Then
   Output(5,4,"TROP TARD
  Else
   Output(5,6,"BIEN !
   S+1->S
  End
 End
 Pause
End
ClrHome
Disp "SCORE:",S
Pause
Goto 1
Lbl Q
ClrHome
Output(1,1,"
adrien41 le 09/01/2015 à 16:40
comment fonctionne le Repeat, stp? Je ne l'est jamais utilisé car j'ai débuté la programmation il y à peu.
linkakro le 09/01/2015 à 21:39
https://tout82.pages-perso.fre[...]t.php?sujet=697
Le contenu est répétée jusqu'à ce que la condition soit vraie, et il n'y a pas de test à l'entrée. Tout nombre non-nul est vrai donc je raccourcis les conditions. (K pour K=/=0)