j'ai résolu access violation
dans sa il n'y a rien qui vous choque

(je fais mon fier mais j'ai galérer!!) ?
for (i=1;i<=6;i++)
{
for (j=1;j<=7;i++)
grille[j]='$';
}
Dans le deuxième "for", l'incrémentation se fait avec j au lieu de i. d'ou l'access violation...

ce n'es pas tout maintenant que j'ai sa j'ai un second souci apres avoir entrer le premier nom de joueur puis entrer ...paf je tombe sur une boucle infinie...je crois qu'il doit se passer quelquechose au niveau du "scan" du prenom mais je sais pas quoi ...AU secours!!!!
ps: merci encore beaucoup pour votre aide
ps voici le prog (encore une fois) j'ai modif quelques trucs et rajouter une fonction qui affiche le tableau
#include <conio.h>
#include <stdio.h>
void dessine_grille(char grille[6][7])
{ int i,j;
for (i = 1 ; i <= 6 ; i++)
{
for (j= 1 ; j <= 7 ; j++)
printf("%c ", grille[j]);
printf("\n");
}printf("1 2 3 4 5 6 7\n");
}
void main (void)
{
char grille[6][7];
int nb_p,i,j,x,c,n;
char ja,jb,pa,pb,v;
//début du prog
//initialisation du tableau
for (i=1;i<=6;i++)
{
for (j=1;j<=7;j++)
grille[j]='z';
}
dessine_grille(grille);
// initialisation des variables
pa='c' ;
pb='d' ;
nb_p=0 ;
v='o';
n=0;
// saisit du nom des joueurs
printf ("nom joueur 1\n");
scanf ("%c\n",&ja);
printf ("nom joueur 2\n");
scanf ("%c\n",&jb);
do //do d'une super boucle
{
x=0;
do //do1
{
do
{
printf ("%c dans quel colonne désirez vous jouer", &ja);
scanf ("%i",&c);
}
while ((c<1) && (c>7));
if (grille[1][c]=='z')
{
grille[1][c]=pa;
x=1;
}
else
{
if (grille[2][c]=='z')
{
grille[2][c]=pa;
x=2;
}
else
{ if (grille[3][c]=='z')
{
grille[3][c]=pa;
x=3;
}
else
{ if (grille[4][c]=='z')
{
grille[4][c]=pa;
x=4;
}
else
{ if (grille[5][c]=='z')
{
grille[5][c]=pa;
x=5;
}
else
{ if (grille[6][c]=='z')
{
grille[6][c]=pa;
x=6;
}
else
{printf ("la colonne est pleine");
}
}
}
}
}
}
}
while (x==0);//fin do1
// test pour voir si le joueur a gagné
//test horizontal vers la droite
for( j=c;j=c+3;j++)
{
while (grille[x][j]==pa){nb_p=nb_p+1;}
;}
//test horizontal vers la gauche
for( j=c;j=c-3;j--)
{
while (grille[x][j]==pa){nb_p=nb_p+1;}
;}
if (nb_p>=4) {v=ja;}// test première diagonale
else
{
nb_p=1;
j=c;
for (i=x+1;i=x+3;i++) //test en haut à droite
{
for (j=j+1;;)
{while (grille[j]==pa) {nb_p=nb_p+1;}
}
}
j=c;
for (i=x-1;i=x-3;i--) //test en bas à gauche
{
for (j=j-1;;)
{while (grille[j]==pa) {nb_p=nb_p+1;}
;}
;}
if (nb_p>=4) {v=ja;}
else // test seconde diagonale
{
nb_p=1;
j=c;
for (i=x+1;i=x+3;i++) //test en haut à gauche
{
for (j=j-1;;)
{while (grille[j]==pa) {nb_p=nb_p+1;}
;}
;}
j=c;
for (i=x-1;i=x-3;i--) //test en bas à droite
{
for (j=j+1;;)
{while (grille[j]==pa) {nb_p=nb_p+1;}
;}
;}
if (nb_p>=4) {v=ja;}
else
{ nb_p=0;
for (i=x;i=x-3;i--)
{while(grille[c]==pa) {nb_p=nb_p+1;}
}
if (nb_p>=4) {v=ja;}
;}
;}
;}
if(v=='o'){x=0;}
//début second joueur
do //do1
{
do
{
printf ("%c dans quel colonne désirez vous jouer", &jb);
scanf ("%i",&c);
}
while ((c<1) && (c>7));
if (grille[1][c]=='z')
{
grille[1][c]=pb;
x=1;
}
else
{
if (grille[2][c]=='z')
{
grille[2][c]=pb;
x=2;
}
else
{ if (grille[3][c]=='z')
{
grille[3][c]=pb;
x=3;
}
else
{ if (grille[4][c]=='z')
{
grille[4][c]=pb;
x=4;
}
else
{ if (grille[5][c]=='z')
{
grille[5][c]=pb;
x=5;
}
else
{ if (grille[6][c]=='z')
{
grille[6][c]=pb;
x=6;
}
else
{printf ("la colonne est pleine");
}
}
}
}
}
}
}
while (x==0);//fin do1
// test pour voir si le joueur a gagné
//test horizontal vers la droite
for( j=c;j=c+3;j++)
{
while (grille[x][j]==pb){nb_p=nb_p+1;};
}
//test horizontal vers la droite
for( j=c;j=c-3;j--)
{
while (grille[x][j]==pb){nb_p=nb_p+1;};
}
if
(nb_p>=4) {v=jb;}
// test première diagonale
else
{
nb_p=1;
j=c;
for (i=x+1;i=x+3;i++) //test en haut à droite
{
for (j=j+1;;)
{while (grille[j]==pb) {nb_p=nb_p+1;}
}
}
j=c;
for (i=x-1;i=x-3;i--) //test en bas à gauche
{
for (j=j-1;;)
{while (grille[j]==pb) {nb_p=nb_p+1;}
;}
;}
if (nb_p>=4) {v=jb;}
else // test seconde diagonale
{
nb_p=1;
j=c;
for (i=x+1;i=x+3;i++) //test en haut à gauche
{
for (j=j-1;;)
{while (grille[j]==pb) {nb_p=nb_p+1;}
;}
;}
j=c;
for (i=x-1;i=x-3;i--) //test en bas à droite
{
for (j=j+1;;)
{while (grille[j]==pb) {nb_p=nb_p+1;}
;}
;}
if (nb_p>=4) {v=jb;}
else
{ nb_p=0;
for (i=x;i=x-3;i--)
{while(grille[c]==pb) {nb_p=nb_p+1;}
}
if (nb_p>=4) {v=jb;}
;}
;}
;}
for (i=1;i=6;i++)
{
for (j=1;j=6;j++)
{
if (grille[j]!='z') {n=n+1;}
;}
;}
if (n==42) {v='e';}
;}
while ((v=='o') && (v!='e')); // condition de répétition de la grande boucle
if ((v==ja) || (v==jb)) { printf ("BRAVO C'EST %c qui à gagner ",&v);}
else {printf ("partie impossible");}
getch ();
}
-->Message édité par donaldalex2001 le 08/12/2007 15:41:01<--