Gamme TI-82
Partager sur Facebook Fil RSS Imprimer la page
Cacher les résultats

Résultat de la recherche



Poster un nouveau sujet Poster une réponse
Getkey...
Auteur Message
lover-lol
Avatar

Autorisation : Membre
Nb de messages : 74
Inscrit le : Ven 03 Déc 2010, 3:42
Posté le : Jeu 16 Déc 2010, 21:22   Citer 

Bonjour,
Je créé un programme mais, avec les getkeys, (codetouche) , je capte vraiment rien...
En fait, je voudrais que dans mon programme, à n'importequel moment si on appuie sur une touche (je connais les n° des touches), j'ai un goto...
Voilà, j'ai lu qu'il faut mettre un

Code
getkey->K
Repeat K


Je sais que K c'est une lettre qu'on eut choisir mais le repeat ?
Et où mettre mon code ?
Ici, ce sera un code comme ceci :

Code
Input "",A
While A=!1531231              // =! signe différent
Disp A
End


Je ne sais pas si c'est exactement ce code (le mien est avec pleins de lbl car il y a d'autres if, un compteur,...) mais le principe est là et sur ma calto, mon code fonctionne !

Je cherche où mettre le GETKEY !

Merci d'avance,
Lover-lol

----------------------
Derien winkle.gif
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2176
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Ven 17 Déc 2010, 14:43   Citer 

est-ce que tu as compris le principe de la boucle?

si tu écris :

getkey->K
Repeat K
...
End

le code touche ne se demande qu'une fois, au début, avant la boucle.

de même:

Input "",A
While A=!1531231 // =! signe différent
Disp A
End

ce code ne demande qu'une seule fois la valeur de A, et ensuite, si elle est égale à 1531231, il passe après la boucle,, sinon, il affiche la valeur de A à l'infini!

il faut mettre l'instruction dans la boucle:


Code
Repeat K
getkey->K

If K=11:Goto 1
If K=12:Goto 2
etc...

End

ou alors:



Code
While A=!15312321
Imput A
Disp A
End



ensuite, je n'ai pas compris ce que tu voulais faire exactement comme programme, donc je ne peux pas t'aider.

tu dis que tu veux un programme ou selon la touche selon laquelle on appuie, on a un goto différent.dans ce cas, peut être que tu voulais mélanger les deux boucles et que ta deuxième était juste:


Code

Input A
While A=! 1531231
getkey->K
Disp A
If K=11:Goto 1
If K=12:Goto 2
etc...
End



ainsi, le programme te demande la valeur de A.
si A=1531231, il ne fait rien, sinon, il affiche A jusqu'à ce que tu appuies sur une touche, qui t'emmènera a un endroit différent selon sur laquelle tu as appuyé.

si ce n'est pas ça que tu voulais, explique moi plus précisément.

 Adresse email Haut de page Bas de page 
 
lover-lol
Avatar

Autorisation : Membre
Nb de messages : 74
Inscrit le : Ven 03 Déc 2010, 3:42
Posté le : Ven 17 Déc 2010, 17:20   Citer 

Bon alors je vais recopier tout mon code qui (en fait) j'ai rempli de pleins pleins de Goto minied.gif ... Pourriez-vous me dire comment simplifier le code ?
Et donc il faut mettre le
Code
If K=lecodedelatouche
Then
Goto A


?

Voici le code de mon programme qui doit protéger (théoriquement) et qui calcule jusqu'à ce qu'on donne un chiffre (14121996) et après il faut écrire un mot (LOVER-LOL).

Code
ClrHome
Lbl L
Input "",I
If I =!= 14121996
Then
Goto T
End
Lbl F
Input "",Str6
If Str6="LOVER-LOL"
Then
Goto tHéTa
End
If Str6 =!= "LOVER-LOL"
Then
Goto N
End
Lbl T
Disp I
Goto L
End
Lbl N
ClrHome
Menu("ERR:SYNTAX","VOIR",V,"QUITTER",Q
Lbl V
Goto T
Lbl tHétA
ClrHome
Output(1,1,"PROGRAMME CACHE
Pause
Lbl Q
End
ClrHome
"CALCULETTE"->Str6
DelVar I
Output(1,1,"




Et un autre prog'

Code
ClrHome
0->C
0->U
Lbl 0
While C =!= 14121996
Input "",C
If C<100 and C =!= 0
Then
Goto H
End
If C=0
Then
Disp "0=0
End
If C>100
Then
69!
69!
69!
69!
69!
69!
69!
// COMMENTAIRE : DES 69! En rafale (environ 50 ^^)
Disp "CHARGEMENT","..."
Lbl X
// COMMENTAIRE : Encore plein de 69!
U+1->U
End
If U =!= 2
Then
Goto X
End
Lbl H
Disp C
0->U
Goto O
End
DelVar C
ClrHome
Output(1,1,"
Delvar ADelvar U



Tadaaa,
extraterre.gif Lover-lol extraterre.gif

----------------------
Derien winkle.gif
 Adresse email Haut de page Bas de page 
 
metallica



Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
Posté le : Ven 17 Déc 2010, 17:42   Citer 

Si tu veux beaucoup ralentir, je te conseille de mettre un

Code
for(X,0,{la valeur que tu veux}


Plus la valeur est grande et plus ça ralentit.

----------------------


Tutoriel sur l'Axe Parser !
 Adresse email Haut de page Bas de page 
 
lover-lol
Avatar

Autorisation : Membre
Nb de messages : 74
Inscrit le : Ven 03 Déc 2010, 3:42
Posté le : Ven 17 Déc 2010, 18:41   Citer 

Ah oui c'est vrai !
Je connaissais en plus le vieux gag du
Code
for(X,0,10000000

^^

Merci je vais mettre For(X,0,10) à la place des 69! !!
Lover-lol

----------------------
Derien winkle.gif
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2176
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Sam 18 Déc 2010, 14:43   Citer 

simplification du premier programme:


Code

ClrHome
0->I
While I =!= 14121996
If I:Disp I
Input "",I
End
Input "",Str6
If Str6="LOVER-LOL"
Then
Goto tHéTa
Else
Menu("ERR:SYNTAX","VOIR",L,"QUITTER",Q
End
Lbl tHétA
ClrHome
Output(1,1,"PROGRAMME CACHE
Pause
Lbl Q
End
ClrHome
"CALCULETTE"->Str6
DelVar I
Output(1,1,"


et encore, je crois qu'on peut faire mieux.

et ce que je ne comprend pas, c'est à quel moment dans ce code tu veux que si on appuie sur une touche ça t'emmène quelque part.
Ce programme, quand on le lance, il est en permanence en train de demander des données avec Input. et on ne peut pas détecter de touches tant que le prog est en train de faire un Input.On peut avant, après, mais pas pendant le Input.


simplification deuxème code:


Code

ClrHome
0->C
0->U
Lbl 0

While C =!= 14121996
Input "",C
If C<100 and C:Then
Disp C
0->U
End
If non(C:Disp "0=0
If C>100:Then
For(X,1,1E4:End      /// le E se trouve en faisant [2nd][,]
Lbl X
Disp "CHARGEMENT","..."
For(X,1,1E4:End     
U+1->U
End
If U =!= 2:Goto X
DelVar C
ClrHome
Output(1,1,"
Delvar ADelvar U




est-ce que par hasard, tu voudrais qu'appuyer sur une touche au début puisse faire accéder directement à la suite du programme?
(c'est pour ça que tu parle de code touche?)

dans ce cas:

Code

For(X,1,200
If getkey= numéro de la touche
Goto Z
End

ici un des deux codes ci dessus...


Lbl Z

suite du programme.



mais alors attention:

tu as environ 1 seconde pour appuyer sur la touche, après le programme part.

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
lover-lol
Avatar

Autorisation : Membre
Nb de messages : 74
Inscrit le : Ven 03 Déc 2010, 3:42
Posté le : Dim 19 Déc 2010, 1:24   Citer 

Meric pour ces progs simplifiés !
En fait je voudrais que tout au long du prog, si onappuye sur un enchainement de touche, genre fleche guach fleche bas fleche haut fleche droit, cela stoppe le prog !
Car apres je désactiverai la touche ON avec un prog en ASM...
Et aussi lorsque l'on appuye sur MODE, rien ne se passe et lorsque l'on appuye sur prgrm, je créé un menu qui ressemble à prgrm mais vide !
Voilà !
Merci d'avance !

----------------------
Derien winkle.gif
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2176
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Lun 20 Déc 2010, 11:04   Citer 

dans ce cas, c'est possible, mais pas avec la fonction Input.

il faut tout faire avec des codetouche, y compris demander des mots de passe.

 Adresse email Haut de page Bas de page 
 
lover-lol
Avatar

Autorisation : Membre
Nb de messages : 74
Inscrit le : Ven 03 Déc 2010, 3:42
Posté le : Lun 20 Déc 2010, 11:49   Citer 

Donc pour le premier code cela me ferait :

Code
ClrHome
0->I
While I =!= 14121996
If I:Disp I
Input "",I
For(X,1,200
If getkey= numéro de la touche
Goto Z
End
End
Input "",Str6
If getkey= numéro de la touche
Goto Z
End
If Str6="LOVER-LOL"
Then
Goto tHéTa
Else
Menu("ERR:SYNTAX","VOIR",L,"QUITTER",Q
If getkey= numéro de la touche
Goto Z
End
End
Lbl tHétA
ClrHome
Output(1,1,"PROGRAMME CACHE
Pause
Lbl Q
Lbl Z
End
ClrHome
"CALCULETTE"->Str6
DelVar I
Output(1,1,"



Et, de plus, comment faire pour que ce soit (exemple) If getkey = Fleche haut PUIS fleche gauche PUIS fleche bas PUIS fleche droite ?

----------------------
Derien winkle.gif
 Adresse email Haut de page Bas de page 
 
metallica



Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
Posté le : Lun 20 Déc 2010, 12:07   Citer 

Ton programme est faux car il suffit d'appuyer sur n'importe quel touche faisant partis de l'enchaînement de touches et non de les faire toutes pour continuer.
Je te conseil d'utiliser plusieurs Lbl. Par exemple

Code
Lbl 1
For(A,0,200
If getkey={touche souhaité}
Goto 2
End
Lbl 2
For(A,0,200
If getkey={touche souhaité}
Goto 3
End
...


Tu ne peux pas faire: If getkey = Fleche haut PUIS fleche gauche PUIS fleche bas PUIS fleche droite car Getkey ne prend qu'une valeur.

----------------------


Tutoriel sur l'Axe Parser !
 Adresse email Haut de page Bas de page 
 
lover-lol
Avatar

Autorisation : Membre
Nb de messages : 74
Inscrit le : Ven 03 Déc 2010, 3:42
Posté le : Lun 20 Déc 2010, 12:11   Citer 

Oui dans mon prog je cherche (car je ne sais pas) faire comment un enchainement d'appui sur certaines touches m'envoient (avec un goto) vers une partie du prog !
Merci d'avance,

----------------------
Derien winkle.gif
 Adresse email Haut de page Bas de page 
 
metallica



Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
Posté le : Lun 20 Déc 2010, 12:12   Citer 

PS: J'ai édité mon message précédant.

----------------------


Tutoriel sur l'Axe Parser !
 Adresse email Haut de page Bas de page 
 
lover-lol
Avatar

Autorisation : Membre
Nb de messages : 74
Inscrit le : Ven 03 Déc 2010, 3:42
Posté le : Lun 20 Déc 2010, 12:29   Citer 

Paaaaaaaaaaaaas idiooot !!
Merci ! bigmouth.gif
Mais que vient faire le For(A,0,200 ?
Mais dans le prog que j'avais marqué (le dernier) après je peux mettre ensuitee dans le Lbl Z

Code
Lbl Z
If Getkey= aupif
Then
Goto M
If Getkey =!= aupif
Then
Goto  à un endroit
Lbl M
If Getkey = touche souhaitée n°3
Then
Goto S
If Getkey =!= touche souhaitée n°3
Then
Goto à un endroit



----------------------
Derien winkle.gif
 Adresse email Haut de page Bas de page 
 
metallica



Autorisation : Membre
Nb de messages : 108
Inscrit le : Lun 28 Jui 2010, 11:14
Posté le : Lun 20 Déc 2010, 15:23   Citer 

Effectivement, le For(A,0,200 n'est pas nécessaire.

----------------------


Tutoriel sur l'Axe Parser !
 Adresse email Haut de page Bas de page 
 
lover-lol
Avatar

Autorisation : Membre
Nb de messages : 74
Inscrit le : Ven 03 Déc 2010, 3:42
Posté le : Lun 20 Déc 2010, 22:32   Citer 

Et j'ai testé et le prog ne marche pas ;(
Qqun pourrait-il m'aider ?

----------------------
Derien winkle.gif
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2016 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink
 

Site hébergé par Free Page sous licence creative commons Page validée par le W3C (XHTML 1.0 Transitional) Feuille de style validée par le W3C Flux RSS 2.0 valide Page étiquetée par l'ICRA Page testée par Ocawa