Autorisation : Membre
Nb de messages : 2
Inscrit le : Ven 17 Jan 2020, 21:14
Posté le : Ven 17 Jan 2020, 21:55
Bonjour à tous, je sais que c'est la fonction codetouche le problème car je ne sais pas m'en servir. j'ai essayé de regarder divers pages de ce forum traitant sur cette fonction, mais je n'arrive pas à faire fonctionner mon programme morpion 3x4
Code
Lbl 3
1[sto]Z
3[sto]X
3[sto]Y
DelVar KDelVar WDelVar JDelVar A
1[sto]L
EffListe L[sto]1;
12[sto]dim(L[sto]1;
EffÉcran
For(T,1,15
Output(3,T,"-
Output(6,T,"-
End
For(T,1,8
Output(T,4,"I
Output(T,8,"I
Output(T,12,"I
End
Output(3,4,"+
Output(3,8,"+
Output(3,12,"+
Output(6,4,"+
Output(6,8,"+
Output(6,12,"+
Output(2,3,"1
Output(2,6,"2
Output(2,10,"3
Output(2,13,"4
Output(4,3,"5
Output(4,6,"6
Output(4,10,"7
Output(4,13,"8
Output(7,3,"9
Output(7,6,"10
Output(7,10,"11
Output(7,13,"12
1[sto]L
Repeat getKey
If L=1
"X"[sto]Chn3
If L=2
"O"[sto]Chn3
L+1[sto]L
If L=3
1[sto]L
getKey[sto]K
K-72[sto]A
If A>9
A-6[sto]A
If A>13
A-6[sto]A
If A>12
Repeat getKey
If A<0
Repeat getKey
End
If K=72 ou K=82 ou K=92
6[sto]X
If K=73 ou K=83 ou K=93
10[sto]X
If K=74 ou K=84 ou K=94
13[sto]X
If K=81 ou K=82 ou K=83 ou K=84
5[sto]Y
If K=91 ou K=92 ou K=93 ou K=94
7[sto]Y
If L[sto]1;(A)=0
Then
L[sto]L[sto]1;(A)
Output(Y,X,Chn3
End
If prod(L[sto]1;
1[sto]J
If L[sto]1;(1)L[sto]1;(2)L[sto]1;(3)=L^3 ou L[sto]1;(1)L[sto]1;(6)L[sto]1;(10)=L^3 ou L[sto]1;(1)L[sto]1;(5)L[sto]1;(9)=L^3 ou L[sto]1;(2)L[sto]1;(3)L[sto]1;(4)=L^3 ou L[sto]1;(2)L[sto]1;(6)L[sto]1;(10)=L^3 ou L[sto]1;(3)L[sto]1;(7)L[sto]1;(11)=L^3 ou L[sto]1;(4)L[sto]1;(8)L[sto]1;(12)=L^3 ou L[sto]1;(5)L[sto]1;(6)L[sto]1;(7)=L^3 ou L[sto]1;(6)L[sto]1;(7)L[sto]1;(8)=L^3 ou L[sto]1;(9)L[sto]1;(10)L[sto]1;(11)=L^3 ou L[sto]1;(10)L[sto]1;(11)L[sto]1;(12)=L^3 ou L[sto]1;(2)L[sto]1;(7)L[sto]1;(12)=L^3 ou L[sto]1;(4)L[sto]1;(7)L[sto]1;(10)=L^3 ou L[sto]1;(3)L[sto]1;(6)L[sto]1;(9)=L^3
1[sto]W
If W
Then
EffÉcran
Output(2,2,"FELICITATIONS
If L=1
Output(4,4,"JOUEUR 1
If L=2
Then
Output(4,4,"JOUEUR 2
2[sto]Z
End
Goto 1
If J
Output(4,2,"MATCH NUL
Lbl 1
Pause
Menu("REJOUER ?","OUI",3,"NON",2
Lbl 2
Stop
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Sam 04 Juil 2020, 21:50
Salut yosh !
J'espere que je n'arrive pas trop (trop) tard pour toi !
La fonction codeTouch( / getKey renvoie le code de la touche actuellement pressee par l'utilisateur.
Si tu fais
Code
0 -> K
While K!=105
getKey -> K
Disp K
End
Ca devrait normalement t'afficher 0, en continue. Si tu appuyes sur une touche ca devrait afficher son numero, et si tu appuyes sur [enter] quitter le programme
Du coup, pour recuperer le code de la touche pressee par l'utilisateur, il faut que tu fasses:
Code
0->K
Repeat K
getKey->K
End
1. On met la variable K a 0
2. On repete tant que K vaut 0 (vu que getKey renvoie 0 si aucune touche n'est pressee)
3. On met le code de la derniere touche pressee dans K
4. Fin de la boucle, on verifie la condition du Repeat, donc si aucune touche n'a ete pressee on repete
Apres ce bout de code, tu auras la valeur de la touche pressee dans K, et tu pourras l'utiliser !
Aussi, petits rappels au niveau des boucles / conditions:
1. Les boucles Repeat / While doivent systematiquement finir par un End, pour delimiter la zone concernee
2. Un If seul n'a pas besoin de End, mais s'il est suivi d'un Then le End est necessaire
N'hesite pas si tu as besoinn de plus d'aide, je vais essayer de repasser ici !