Search This Blog

Tuesday, 25 November 2014

Program to solve Eight Queen problem using backtracking technique



#include <stdio.h>
#include<conio.h>

int row[8],s=0;
int safe(int,int);

void putboard();
void queen(int);

int safe(int x, int y)
{
int i;
for(i=1;i<=y;i++)
if( row[y-i]==x || row[y-i]==x-i || row[y-i]==x+i)
return 0;
return 1;
}

void putboard()
{
int x,y;
printf("\nSolution # %d",++s);
printf(":\n---------------------------------\n");
for(y=0;y<8; y++)
{
for (x=0;x<8;x++)
if(x==row[y])
printf("| Q ");
else
printf("| ");
printf("|\n---------------------------------\n");
}
getch();
}

void queen(int y)
{
int x;
for(x=0;x<8;x++)
{
row[y-1]=x;
if( safe(x,y-1) )
if (y<8)
queen(y+1);
else
putboard();
}
}

void main()
{
clrscr();
queen(1);

getch();

}


OUTPUT

Download as Word File
Download as TEXT File
Download as PDF  

No comments:

Post a Comment