Voila j'ai fait un prog en C++ pour resoudre la solution du probleme des 8 reines, vous savez celui il fo placer 8 reines sur un echiquier sans qu'une autre puisse manger l'autre. donc je fais mon petit prog de la maniere bourrin celle que je prefere ; et la je tombe sur une solution je suis content mais je le relance une seconde fois et il plante, je le relance une dizaine de fois et la il recommence a planter 1 fois sur 5, je le teste sur windows 95 et la il me trouve une solution a chaque fois mais windows me dit que le prog a causer une erreur et qu'il doit s'arreter. Je sais pas ce que c mon erreur qui provoque ces erreurs, pouvez vous m'aider.
La source :
#include <iostream.h>
#include <stdlib.h>
#include<time.h>
int Echiquier[8][8];
void Marquage(int,int);
void Affiche(void);
void Initialise(void);
int Placement();
int main()
{
srand((unsigned)time( NULL ));
int Reines;
Initialise();
while(Reines!=8)
{
Initialise();
Reines=Placement();
}
Affiche();
system("PAUSE" );
return 0;
}
void Marquage(int a,int b)
{
int x,y;
for(x=0;x<8;x++)
{
Echiquier[x][b]=2;
}
for(y=0;y<8;y++)
{
Echiquier[a][y]=2;
}
y=b;
for(x=a;x<8;x++)
{
Echiquier[x][y++]=2;
}
y=b;
for(x=a;x>=0;x--)
{
Echiquier[x][y--]=2;
}
x=a;
for(y=b;y<8;y++)
{
Echiquier[x--][y]=2;
}
x=a;
for(y=b;y>=0;y--)
{
Echiquier[x++][y]=2;
}
Echiquier[a][b]=1;
}
void Affiche()
{
int x;
int y;
for(x=0;x<8;x++)
{
for(y=0;y<8;y++)
{
cout<<Echiquier[x][y];
if(y==7)
cout<<endl;
}
}
}
void Initialise()
{
int x,y;
for(x=0;x<8;x++)
{
for(y=0;y<8;y++)
{
Echiquier[x][y]=0;
}
}
}
int Placement()
{
int y;
int x;
int Reines=0;
for(x=0;x<8;x++)
{
for(y=rand()%8;y<8;y++)
{
if(Echiquier[x][y]!=0)
continue;
else
{
Marquage(x,y);
Reines++;
cout<<"("<<x<<" ,"<<y<<" )"<<"Reines : "<<Reines<<endl;
break;
}
}
}
if(Reines<8)
{
for(x=0;x<8;x++)
{
for(y=0;y<8;y++)
{
if(Echiquier[x][y]!=0)
continue;
else
{
Marquage(x,y);
Reines++;
cout<<"("<<x<<" ,"<<y<<" )"<<"Reines : "<<Reines<<endl;
break;
}
}
}}
return Reines;
}