I don't know why mat[7][8]='A' prints A in the whole column. The procedure is a game grid where we should put pions of gamers and maintain all their previous pions on the grid. I don't know why changing the value of this matrix outside a for loop doesn't do anything right as it supposed to be.
Here is the code:
#include "Go_1.h" #define DIMENSION 9 #define SPACELEFT 2 /* cette donction permet d'affichier la matrice à l'état initial, de placer le pion du joueur à l'intersection en analysant si la place est vide ou pas, et d'afficher la grille avec les pions des joueurs*/ void grille(char mat[][TAILLE_MATRICE], int *x, int *y,char jeton,char *joueur,char lettres[],char nombres[]) { int a=0; /* servira de compteur pour afficher tous les caracteres de A--I en utilsant le code ASCII*/ int b=1; const int LIGNE_COLONNE=(SPACELEFT-1)*(DIMENSION-1)+ DIMENSION;/* = 25// nb de lignes et colonnes où on doir afficher les valeurs de la matrice stockées dans LIGNE_COLONNE(25) lignes et colonnes*/ printf("\t"); printf(" "); /*2 spaces*/ /*affichage des lettres délimitant le goban horizontalement*/ for(int j=0;j<DIMENSION;j++) { printf("%c", 'A'+a); a++; for (int k=0; k<(2*SPACELEFT-1);k++) { printf(" "); /*5 spaces 5= 2*SPACELEFT-1 */ } } printf("\n"); /*Remplissage de la matrice*/ for (int i=0;i<LIGNE_COLONNE;i+=SPACELEFT) { for (int j=0;j<LIGNE_COLONNE;j+=SPACELEFT) { mat[i][j]='0'; } } mat[7][8]='A'; /*affichage des nombres délimitant le goban verticalement*/ for (int i=0;i<LIGNE_COLONNE;i++) /* LIGNE_COLONNE in this case= 25*/ { printf("\t"); if (i%SPACELEFT==0) { printf("%d ",b); b++; } else printf(" "); for (int j=0; j<LIGNE_COLONNE;j++) { if ((i%SPACELEFT==0)&&(j%SPACELEFT==0)) /* le cas où mat[i][j] est une intersection*/ { /*if (i==*x && j==*y) /*tester si les indices coincident avec ceux choisis par le joueur { if (mat[*x][*y]=='0') /*tester si l'intersection ets vide cad contient '0'* { mat[*x][*y]=jeton; } else { printf("\tLa place est deja occupee!"); choix_pion(joueur,jeton,x,y,lettres,nombres);/*on lui demande de réexprimer son choix où placer son pion break; } } */ printf("%c ",mat[i][j]); } else if ((i%SPACELEFT==0)&&(j%SPACELEFT!=0)) printf("* "); else if ((i%SPACELEFT!=0)&&(j%SPACELEFT!=0)) printf(" "); else if ((i%SPACELEFT!=0)&&(j%SPACELEFT==0)) printf("* "); } printf("\n"); } return; }