J'ai créé une fonction Lire_Direction pour un jeu que je voudrais coder. Or la fonction prend en compte la flèche de gauche, la flèche de droite et la touche s mais pas la touche r et le A majuscule. Voici le code.
vvoid Lire_Direction(char *direction) {
char tab;
while (1) {
clear();
printw("Que voulez-vous faire : jouer à Gauche, à Droite, faire une Rotation, Sauvegarder ou bien Afficher le classement ?\n");
printw("Fleche gauche pour Gauche, fleche droite pour Droite, r pour Rotation, s pour Sauvegarder et A pour Afficher le classement :\n");
printw("Direction: ");
refresh();
tab = getch();
if (tab == KEY_LEFT || tab == 'g') {
*direction = 'g';
return;
}
else if (tab == KEY_RIGHT || tab == 'd') {
*direction = 'd';
return;
}
else if (tab == 'A') {
*direction = tab;
return;
}
else if (tab == 'r'){
*direction = tab;
return;
}
else if (tab == 's') {
*direction = 's';
return;
}
else if (tab == '\n') {
printw("Mauvaise entrée ! Vous avez appuyé sur Entrée.\n");
printw("Veuillez réessayer : \n");
refresh();
sleep(2);
}
else {
printw("Mauvaise entrée ! Seules les touches fléchées gauche/droite, r, s et A sont valides.\n");
printw("Veuillez réessayer : \n");
refresh();
sleep(2);
}
}
}
- Edité par TheFreedomIWant 4 février 2024 à 20:09:04
Edit: j'avais pensé à un problème de clavier azerty / qwerty, car la structure du code me semble correcte (je n'emploie pas ncurses). Mais le 'r' est au même endroit....
Mais pourquoi se compliquer la vie en écrivant une fonction void qui reçoit l'adresse d'un char ?
char Lire_Direction(void) {
while(1) {
clear();
printw("Que voulez-vous faire : jouer à Gauche, à Droite, faire une Rotation, Sauvegarder ou bien Afficher le classement ?\n");
printw("Fleche gauche pour Gauche, fleche droite pour Droite, r pour Rotation, s pour Sauvegarder et A pour Afficher le classement :\n");
printw("Direction: ");
refresh();
char tab=getch();
if(tab == KEY_LEFT || tab == 'g')
return('g');
if(tab == KEY_RIGHT || tab == 'd')
return('d');
if(tab == 'A' || tab == 'r' || tab == 's')
return(tab);
if(tab == '\n')
printw("Mauvaise entrée ! Vous avez appuyé sur Entrée.\n");
else
printw("Mauvaise entrée ! Seules les touches fléchées gauche/droite, r, s et A sont valides.\n");
printw("Veuillez réessayer : \n");
refresh();
sleep(2);
}
}
- Edité par edgarjacobs 4 février 2024 à 21:08:39
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Problème de prise de caractère avec Ncurses
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent