Touche getKey

Résolu/Fermé
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 - 3 juin 2016 à 22:26
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 - 7 juin 2016 à 19:41
Bonsoir,

J'ai besoin de votre aide puisque je voudrais créer un jeu de mémorisation mais je pense qu'il me manque une commande que je ne connais pas pour sa création.
Tout d'abord je programme sur une TI-83 Plus
Voici ce que je veux faire : le programme donne un chiffre et l'utilisateur doit retracer le code que la calculatrice a généré, à chaque nouveau tour un chiffre de plus est rajouté (le niveau du jeu augmente donc en fonction des tours).
Voici le début de mon programme :

1 sto X
randInt(1,9) sto L1(X)
For(I,1,X)
Repeat N
getKey sto N
End
N sto L2(X)
End

Bien sur le programme n'est pas du tout terminé mais je voudrais que la valeur stockés dans la liste L1 soit convertiei en valeur correspondante à la touche du chiffre. Je pourrais ainsi pouvoir comparer la lister L2 avec les valeurs du getKey et les valeurs que la machine à généré...

Merci pour votre aide et j'espère m'avoir fait comprendre :)

1 réponse

quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 347
4 juin 2016 à 12:26
Je ne crois pas qu'il existe une fonction toute faite qui permet de convertir le nombre en la valeur de la touche correspondante ou inversement. En revanche tu peux faire un petit calcul qui fait cela très bien. Je ne n'ai pas de TI mais si tu me donne toutes les correspondance entre les chiffres et les touches correspondantes je pourrais surement te donner le calcul à faire.
0
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 136
5 juin 2016 à 11:54
Eh bien sur la Ti c'est chose toute bête, la valeur de la touche a pour dizaine son numéro de ligne et son unité le numéro de la colonne correspondante.
En gros :

Touche Valeur
1 92
2 93
3 94
4 82
5 83
6 84
7 72
8 73
9 74

Merci pour votre aide, j'attends le calcul avec impatience ;)

Car j'ai fait la méthode un peu bourrin et pas pratique :

entAléat(1,9)
If Rep=1
92
If Rep=2
93
................
Rep sto L1(X
0
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 347 > CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024
5 juin 2016 à 12:56
Bonjour,
justement comme les valeurs des touches sont assez logique c'est facile de faire un calcul. J'appelle K le numéro de la touche et N la valeur correspondante. J'ai fait les calculs dans les 2 sens si jamais tu en as besoins :

K=92-10Int((N-1)/3)+Mod(N-1,3)
N=26-3Int(K/10)+10Frac(K/10)

Par contre comme je n'ai pas de TI je ne connais pas la syntaxe donc j'ai utilisé la syntaxe de la casio donc il faudra que tu cherche les fonctions correspondante sur TI :
- Int(A) : part entière de A
- Frac(A) : part décimale de A
- Mod(A,B) : A modulo B

La c'était simple de faire un calcul car les valeurs sont logique mais de manière général si les valeurs correspondent à des numéro de touches sans logique apparente, tu peux utiliser une méthode beaucoup plus efficace que de faire toutes les conditions : Tu créer une liste avec 9 cases et dans chacune tu écris le numéro de la touche correspondante :
{92,93,94,82,83,84,72,73,74} sto L2
et ensuite c'est assez simple à utiliser :
K=L2[N]

Voilà j'éspère avoir pu t'aider.

PS : J'ai remarqué que tu utilisait la liste 2 dans ton code pour enregistre toute les touches sur lesquels appui l'utilisateur. Peut-être que cette liste te sera utile par la suite mais à première vu j'ai l'impression que tu n'en a pas besoins, il te suffit de vérifier si la touche sur laquelle appui l'utilisateur correspond bien et ensuite tu ne la réutilise pas donc pas besoins de la sauvegarder dans une liste.
0
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 136
7 juin 2016 à 19:41
Bien réfléchit pour l'idée de la liste! Merci pour l'aide et pour le calcul ;)
En soit j'ai créer une liste L2 qui est la liste de référence dont les valeurs sont celle des positions des touches ; le principe était de la comparer à une autre liste L1 que l'utilisateur complétait au fur et à mesure, dès qu'il se trompait le programme se finissait. Merci cela me facilitera la ligne de code :)
0