Advertisement
Guest User

NqueenfFile

a guest
Nov 11th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. # include <iostream>
  2. using namespace std;
  3.  
  4. #define TRUE 1
  5. #define FALSE 0
  6. int board[8][8], column[8], d[15], b[15];
  7.  
  8. void print()
  9. { int i, j;
  10.    for (i = 0; i<8; i++, cout<<endl)
  11.          for (j = 0; j<8; j++)
  12.             if(!board[i][j])
  13.                {   //cout << board[i][j] <<"  ";
  14.                    cout << i << ", " << j <<"  ";
  15.                  }
  16. }
  17.  
  18. int safe(int i, int j)
  19. {
  20.     return  d[i+j] &&
  21.             b[7+j-i] &&
  22.             column[j] &&
  23.             board[i][j] ;
  24. }
  25.  
  26.  
  27. int Try(int i)
  28. { int j;
  29.     for(j=0; j<8; j++)
  30.      if(safe(i, j))
  31.         { //Record
  32.            board[i][j] = d[i+j] = b[7+j-i] = column[j] = FALSE;
  33.            if (i==7)
  34.                return TRUE;
  35.            else if (Try(i+1))
  36.                return TRUE;
  37.            // Renove
  38.            board[i][j]= d[i+j] = b[7+j-i] = column[j] = TRUE;
  39.         }
  40.      return false;
  41. }
  42.  
  43.  
  44. void initilize()
  45. { int i,j;
  46.     for(i=0; i<8; i++)
  47.         for(j=0; j<8; j++)
  48.           { d[i+j] = b[j-i+7] = TRUE;
  49.             board[i][j] = TRUE;}
  50.     for(j=0; j<8;j++)
  51.         column[j] = TRUE;
  52. }
  53. void main()
  54. {   initilize();
  55.     if (Try(0))
  56.         print();
  57.     else cout << "No solution";
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement