Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Plain Text by ferferi ( 13 years ago )
#include <iostream>
using namespace::std;
int board [8][8] = {0};
int row = 0 ;
int num = 1 ;
int hasVazir ( int a)
{
for ( int i = 0 ; i <= 7 ; ++i)
{
if ( board [a][i] == -1)
return i ;
}
return -1 ;
}
int hasFree ( int a)
{
int has = hasVazir ( a );
if ( has != -1 )
board [a][has] = 0 ;
for ( int i = has+1 ; i <= 7 ; ++i)
{
if ( board [a][i] == 0)
return i ;
}
return -1 ;
}
int main()
{
while (true)
{
int temp = hasFree(row);
if ( temp != -1 && row < 7 )
{
board[row][temp] = -1;
for (int i = row+1 , j=1 ; i <= 7 ; ++i , ++j)
{
board [i][temp]++;
if ( temp+j <= 7)
{
board [i][temp+j]++;
}
if ( temp-j >= 0)
{
board [i][temp-j]++;
}
}
row ++ ;
}
else if ( temp != -1 && row == 7)
{
board[row][temp] = -1;
cout << num << endl;
num ++ ;
for (int i = 0 ; i<=7 ; ++i )
{
for (int j = 0 ; j<=7 ; ++j )
{
if ( board [i][j] == -1)
cout << "* ";
else
cout << '0' << " " ;
}
cout << endl;
}
cout << endl;
row ++ ;
}
else if ( row > 0)
{
row -- ;
int temp = hasVazir(row);
for (int i = row+1 , j =1 ; i <= 7 ; ++i , ++j)
{
board [i][temp]--;
if ( temp+j <= 7 && board[i][temp+j] >0)
{
board [i][temp+j]--;
}
if ( temp-j >= 0 && board[i][temp-j] >0)
{
board [i][temp-j]--;
}
}
}
else
{
break;
}
}
}
Revise this Paste
Parent: 35686