8 Rooks & 8 Bishops Problem
JAVA Code
import java.io.*;
class bishop
{
static int a[][]= new int[8][8];
static int pl[][]= new int[8][8];
static int row;
static int placerook(int i,int j)
{
int i1,j1,flag=0;
i1=i;
j1=j;
while(i1>=0)
{
if(a[i1][j1]==0)
flag=1;
i1--;
}
return(flag);
}
static int placebishop(int i,int j)
{
int i1,j1,flag=0;
i1=i;
j1=j;
while((i1>=0)&&(j1>=0))
{if(a[i1][j1]==1)
flag=1;
i1--;
j1--;}
i1=i;
j1=j;
while((i1>=0)&&(j1<8))
{
if(a[i1][j1]==1)
flag=1;
i1--;
j1++;
}
return(flag);
}
static void rook(int l)
{
int k,j;
for(j=l;j<8;j++)
{
if(pl[row][j]==0)
{
k=placerook(row,j);
if(k==0)
{
a[row][j]=0;
pl[row][j]=1;
break;
}
}
}
(row)++;
}
static void bishop(int l)
{
int k,j;
for(j=l;j<8;j++)
{
if(pl[row][j]==0)
{
k=placebishop(row,j);
if(k==0)
{
a[row][j]=1;
pl[row][j]=1;
break;
}
}
}
(row)++;
}
public static void main(String args[]) throws IOException
{
int i,j,k,l,p,t=0;
String ch;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
while(t<8)
{
System.out.println("solution no" + (t+1));
for(i=0;i<8;i++)
for(j=0;j<8;j++)
a[i][j]=-1;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
pl[i][j]=0;
row=0;
rook(t);
for(p=1;p<8;p++)
rook(0);
row=0;
for(p=0;p<8;p++)
bishop(0);
System.out.println("R = rook ");
System.out.println("B = bishop");
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if(a[i][j]==0)
System.out.print(" R ");
if(a[i][j]==1)
System.out.print(" B ");
if(a[i][j]==-1)
System.out.print(" _ ");
}
System.out.println("\n");
}
t++;
}
}
}
/*
OUTPUT
D:\JDK1.3\BIN>java bishop|more
solution no1
R = rook
B = bishop
R B _ _ _ _ _ _
_ R _ B _ _ _ _
B _ R _ _ _ _ _
B _ _ R _ _ _ _
_ _ _ B R _ _ _
B _ _ _ _ R _ _
B _ _ _ _ _ R _
_ _ _ B _ _ _ R
solution no2
R = rook
B = bishop
B R _ _ _ _ _ _
-- More --
R _ B _ _ _ _ _
B _ R _ _ _ _ _
_ _ B R _ _ _ _
B _ _ _ R _ _ _
_ _ B _ _ R _ _
B _ _ _ _ _ R _
_ _ B _ _ _ _ R
solution no3
R = rook
B = bishop
B _ R _ _ _ _ _
R _ B _ _ _ _ _
B R _ _ _ _ _ _
-- More --
_ _ B R _ _ _ _
B _ _ _ R _ _ _
_ _ B _ _ R _ _
B _ _ _ _ _ R _
_ _ B _ _ _ _ R
solution no4
R = rook
B = bishop
B _ _ R _ _ _ _
R _ B _ _ _ _ _
B R _ _ _ _ _ _
_ _ R _ _ B _ _
B _ _ _ R _ _ _
-- More --
B _ _ _ _ R _ _
B _ _ _ _ _ R _
B _ _ _ _ _ _ R
solution no5
R = rook
B = bishop
B _ _ _ R _ _ _
R _ B _ _ _ _ _
B R _ _ _ _ _ _
_ _ R _ _ B _ _
B _ _ R _ _ _ _
B _ _ _ _ R _ _
B _ _ _ _ _ R _
-- More --
B _ _ _ _ _ _ R
solution no6
R = rook
B = bishop
B _ _ _ _ R _ _
R _ B _ _ _ _ _
B R _ _ _ _ _ _
_ _ R _ _ B _ _
B _ _ R _ _ _ _
B _ _ _ R _ _ _
B _ _ _ _ _ R _
B _ _ _ _ _ _ R
solution no7
-- More --
R = rook
B = bishop
B _ _ _ _ _ R _
R _ B _ _ _ _ _
B R _ _ _ _ _ _
_ _ R _ _ B _ _
B _ _ R _ _ _ _
B _ _ _ R _ _ _
B _ _ _ _ R _ _
B _ _ _ _ _ _ R
solution no8
R = rook
B = bishop
B _ _ _ _ _ _ R
R _ B _ _ _ _ _
B R _ _ _ _ _ _
_ _ R _ _ B _ _
B _ _ R _ _ _ _
B _ _ _ R _ _ _
B _ _ _ _ R _ _
B _ _ _ _ _ R _
*/