Bonjour, j'ai un projet à rendre en langage c mais je suis bloqué sur plusieurs aspets. Je voulais savoir si c'était possible de m'aider.
Je dois afficher une matrice avec différents obstacles et un personnage qui bouge, cependant le personnage ne peut pas aller sur les cases I. Je n'arrive pas à coder pour que le personnage n'aille pas sur les coordonnees des obstacles I et qu'il, du coup, ne puisse pas bouger.
Mon deuxieme probleme est que je n'arrive pas à afficher la matrice et le timer en meme temps. On m'a dit d'utiliser la fonction thread mais je suis débutant et j'aimerai bien de l'aide là dessusCode:void afficherMatrice(struct Element *S, struct Element *C1, struct Element *C2, struct Element *C3, struct Element *C4, struct Element *O1, struct Element *O2, struct Element *O3, struct Element *O4, struct Element *I1, struct Element *I2, struct Element *I3, struct Element *I4) { system("cls"); for (int i = 0; i < LARGEUR; i++) { for (int j = 0; j < LONGUEUR; j++) { if(i==0|| i==9){ // contour pour les lignes 0 et 9 printf("-"); } else if (j==0 || j==19){ // contour pour les colonnes 0 et 19 printf("|"); } else if (i==3 && j==9){ printf("%c",bc1); } else if (i==3 && j==11 ){ printf("%c",bc2); } else if (i==5 && j==9){ printf("%c",bc3); } else if (i==5 && j==11){ printf("%c",bc4); } else if (i==4 && j==8 || i==4 && j==12 || i==3 && j==10 || i==5 && j==10){ printf("%c",bi1); } else if (i==1 && j==1){ printf("%c",oiseau1); } else if (i==1 && j==18){ printf("%c",oiseau2); } else if (i==8 && j==1){ printf("%c",oiseau3); } else if (i==8 && j==18){ printf("%c",oiseau4); } else if (S->x == C1->x && S->y == C1->y) { bc1 = ' '; } else if (S->x == C2->x && S->y == C2->y){ bc2 = ' '; } else if (S->x == C3->x && S->y == C3->y){ bc3 = ' '; } else if (S->x == C4->x && S->y == C4->y){ bc4 = ' '; } else if (S->x == O1->x && S->y == O1->y){ oiseau1 = ' '; } else if (S->x == O2->x && S->y == O2->y){ oiseau2 = ' '; } else if (S->x == O3->x && S->y == O3->y){ oiseau3 = ' '; } else if (S->x == O4->x && S->y == O4->y){ oiseau4 = ' '; } else if (S->x == I1->x && S->y == I1->y ){ printf("S"); } else if (S->x == I2->x && S->y == I2->y ){ printf("S"); } else if (S->x == I3->x && S->y == I3->y ){ printf("S"); } else if (S->x == I4->x && S->y == I4->y ){ printf("S"); } else { if(i==S->x && j==S->y){ // emplacement initial de Snoopy printf("S"); } else printf(" "); } } printf("\n"); } }
Merci d'avanceCode:void timerSnoopy(int s) { //SOUS PROGRAMME DU TIMER int sec; for (sec = 1200; sec >= 0; sec--) // pour compter en dixième de seconde de 1200 à 0 { float secondes = sec / 10.0; // puis convertir ces dixièmes en secondes printf(" \t *** Timer : %.1f s *** \r", secondes); usleep(1); //usleep(100000) 1s // attendre 100 000 micro secondes (0.1 secondes) } }
-----