Welcome, guest! Login / Register - Why register?
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 msh ( 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
Children: 64955
Your Name: Code Language: