Salut tout le monde,
Je rencontre un léger problème dans un de mes futurs jeux :
je voulais faire un jeu où l'on doit réécrire le plus vite possible des mots s'affichant à l'écran. Je laisse au joueur la possibilité de créer ses propres mots. Plus les mots sont longs, plus ils rapportent de points si ils sont tapés correctement. Seulement, lors des tests, ma variable qui est censée faire défiler le temps n'avance pas !
Je sais bien pourquoi, le programme stoppe toute activité lorsqu'il rencontre un Input, il attend une valeur et ne fait plus rien d'autre, mais n'y a-t-il pas moyen de contourner ça ?
Ou alors aurais-je mal placé mon for dans mon programme ? :o
Voilà le code : (rien de bien compliqué )
Code
Lbl M
EffEcr
Menu("--Chaînes V1.0--", "Jouer", J, "Règles", R, "REINIT", I, "QUITTER", Q)
Lbl Q
EffEcr
Output(1, 1, "
Stop
Lbl R
EffEcr
Disp "Mettez les", "chaînes que vous", "voulez dans", "Menu->Reinitial.", "puis jouez :", "en un min. de", "temps vous devez"
Pause
EffEcr
Disp "Réécri.ces mots", "plus les mots", "seront longs", "plus vous aurez", "masse de points", "si vous les réé-", "crivez bien."
Pause
Goto M
Lbl I
EffEcr
Input "Chaîne 1 : ", Chaîne1
Input "Chaîne 2 : ", Chaîne2
Input "Chaîne 3 : ", Chaîne3
Input "Chaîne 4 : ", Chaîne4
Input "Chaîne 5 : ", Chaîne5
Input "Chaîne 6 : ", Chaîne6
Input "Chaîne 7 : ", Chaîne7
Input "Chaîne 8 : ", Chaîne8
Input "Chaîne 9 : ", Chaîne9
Goto M
Lbl J
30->E:0->S
While E > 0
For(E, 30, 0, -0.05)
EffEcr
Output(8, 1, "--Temps : ")
Output(8, 11, E)
Output(8, 15, "--")
entAléat(1, 9->A
If A=1: Disp Chaîne1
If A=2: Disp Chaîne2
If A=3: Disp Chaîne3
If A=4: Disp Chaîne4
If A=5: Disp Chaîne5
If A=6: Disp Chaîne6
If A=7: Disp Chaîne7
If A=8: Disp Chaîne8
If A=9: Disp Chaîne9
Input "Réécrivez : ", Chaîne0
If A=1 et Chaîne0=Chaîne1:S+longueur(Chaîne1)->S
If A=2 et Chaîne0=Chaîne2:S+longueur(Chaîne1)->S
If A=3 et Chaîne0=Chaîne3:S+longueur(Chaîne1)->S
If A=4 et Chaîne0=Chaîne4:S+longueur(Chaîne1)->S
If A=5 et Chaîne0=Chaîne5:S+longueur(Chaîne1)->S
If A=6 et Chaîne0=Chaîne6:S+longueur(Chaîne1)->S
If A=7 et Chaîne0=Chaîne7:S+longueur(Chaîne1)->S
If A=8 et Chaîne0=Chaîne8:S+longueur(Chaîne1)->S
If A=9 et Chaîne0=Chaîne9:S+longueur(Chaîne1)->S
End
End
EffEcr
Output(4, 8, S)
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Lun 28 Jan 2013, 18:17
Non, du moment qu'il y a l'input tu aura bien le programme arrêté. Pour contourner cela, utilises la fonction Getkey mais tu devra alourdir ton programme pour que chaque touche pressée donne une lettre.
Sinon, j'ai déplacé ce sujet dans la bonne section.