Détécter l'appuit des fleches [Résolu]

florian1121 37 Messages postés jeudi 20 avril 2006Date d'inscription 26 avril 2006 Dernière intervention - 20 avril 2006 à 18:27 - Dernière réponse : florian1121 37 Messages postés jeudi 20 avril 2006Date d'inscription 26 avril 2006 Dernière intervention
- 21 avril 2006 à 13:21
bonjours
il m'est deman der dans le cadre de mes étude de realisé un projet d'informatique! seulement mon tres faible niveau ne me ^permet pas d'y parvenir et le temps presse!!!
je vous en pris aider moi au plus vite!!!!!!!!!!!!

j'aurai besoin d'une fonction qui récupererait l'appuit des fleche du clavier, ce qui permettrait d'augmenté d'une unité une valeur( ex: x=12km/h, "appui de la fleche haut", x=13km/h )
et cela a n'importe quel moment!!
j'aurait egalement besoin d'une fonction qui effecturait un decompte du temps dés le lancement du programme , cela afin de calculer une distance parcourue en fonction de la vitesse et du temps!!!

Voila je vous remercie d'avance d'essayer de m'aider et de me sauver la vie dans les plus bref délais, lol !!!!!!!!!!!!!!!!!!!!!!
Afficher la suite 

4 réponses

Répondre au sujet
Spoolega 65 Messages postés dimanche 8 janvier 2006Date d'inscription 27 février 2011 Dernière intervention - 20 avril 2006 à 19:25
+3
Utile
Bonjour
Voici déjà un bout de code qui récupère le code ASCII de n'importe quels touches.

#include <conio.h>
#include <stdio.h>


void main (void)
{
int c;

flushall();
c= getch();
printf("%i ", c);
if(c==0)
{
c= getch();
printf ("%i ", c);
}
getch();
}
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Spoolega
Spoolega 65 Messages postés dimanche 8 janvier 2006Date d'inscription 27 février 2011 Dernière intervention - 20 avril 2006 à 23:15
+3
Utile
Et bien, le plus simple, c'est surement d'utiliser un switch
Du genre:

int variable=0;
char touche;

do{
fflush(stdin);
touche = getch();
clrscr();
printf("%i", variable);

switch(touche)
{
case 72 : /* fleche du haut détectée (valeur ASCII) */
variable += 10; /* augmentation de la variable */
break;

case 80: /* fleche du bas détectée */
variable -= 10;
break;
}
}while(touche!=13); /* tant qu'on appuie pas sur entrée, on boucle */

Je fais ca vite fait, a tester ??...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Spoolega
florian1121 37 Messages postés jeudi 20 avril 2006Date d'inscription 26 avril 2006 Dernière intervention - 21 avril 2006 à 13:21
+3
Utile
Parfait ca marche tres bien!! a part qu'il faut appuyé 3 fois sur la fleche pour que la variable change, mais ca n'est pas un probleme!! La fonction clrscr() posait probleme mais en la definnissant par la fonction qui récupere le code ascii des touche ca marche!!
Maintenant c la variable de temps qu'il me faut resoudre !!
je sait qu'il faut se servir de la fonction clock() et d'un truc appeller "clock_per_sec" , mais en tournant ca dans tt les sens possible je n'arrive pas a obtenir un decompte du temps dans la console!!! donc si tu a la moindre petite idée pour y arrivée.....
Autres chose, (je suis vraiment debutant...lol) a quoi sert la fonction getch()????

Merci encore, tes réponses m'aide enormement sans quoi je n'y arriverait jamais!!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de florian1121
florian1121 37 Messages postés jeudi 20 avril 2006Date d'inscription 26 avril 2006 Dernière intervention - 20 avril 2006 à 19:34
0
Utile
Merci d'avoir repondut si vite !!
C'est deja un debut , j'avait des piste qui parlait du code ascii des touches, comme ca c'est confirmer, merci!!!
Seulement mon plus gros probleme est de relié les code des fleche a l'augmentation ou la diminution de la valeur d'une variable, ou a n'importe quoi d'autre!!
Commenter la réponse de florian1121

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.