repeter une question tant que la réponse n'est pas un int
bonjour, je suis actuellement en train de programmer un jeu qui se joue sur un plateau d'echec ou il faut bloquer le cavalier pour que l'adversaire ne puisse plus bouger. Le programme fonctionne, seulement lorsque l'on demande au joueur la ligne et la colonne ou il veut mettre le cavalier, s'il répond par une chaine de caractere sa bug. alors je voulais mettre une boucle qui verifie que la réponse est bien un int et un (seul) char. merci pour votre aide. je met le code en dessous.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| //deplacement du cheval
void deplacement(char tab[8][8], int *a, int *b){
int l,c;
char cc;
do{
do{
do{
printf("Entre la case ou tu veux deplacer ton cavalier (chiffre suivi d'une majuscule)? \n");
scanf("%d%c", &l, &cc);
c=cc-65;
//condition du plateau
}while((l<0) || (l>7) || (c<0) || (c>7));
//condition de possibilté de déplacement de cavalier
}while (((l!=*a+1)||(c!=*b+2)) && ((l!=*a+1)||(c!=*b-2)) && ((l!=*a-1)||(c!=*b+2)) && ((l!=*a-1)||(c!=*b-2)) && ((c!=*b+1)||(l!=*a+2)) && ((c!=*b+1)||(l!=*a-2)) && ((c!=*b-1)||(l!=*a+2)) && ((c!=*b-1)||(l!=*a-2)));
//condition de case deja passer precedement
}while(tab[l][c]=='X');
tab[l][c]='C';
tab[*a][*b]='X';
*a=l; *b=c;
} |