Advertisement
makispaiktis

8 QUEENS PROBLEM

Jan 5th, 2018 (edited)
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.72 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int t[8] = {-1};
  4. int sol = 1;
  5.  
  6. void printsol()
  7. {
  8.     int i,j;
  9.     char crossboard[8][8];
  10.     for(i=0;i<8;i++)
  11.     {
  12.         for(j=0;j<8;j++)
  13.         {
  14.             crossboard[i][j]='_';
  15.         }
  16.     }
  17.     for(i=0;i<8;i++)
  18.     {
  19.             crossboard[i][t[i]]='q';
  20.     }
  21.  
  22.     for(i=0;i<8;i++)
  23.     {
  24.         for(j=0;j<8;j++)
  25.         {
  26.             printf("%c ",crossboard[i][j]);
  27.         }
  28.         printf("\n");
  29.     }
  30. }
  31. int empty(int i)
  32. {
  33.     int j=0;
  34.     while((t[i]!=t[j])&&(abs(t[i]-t[j])!=(i-j))&&j<8)j++;
  35.     return i==j?1:0;
  36. }
  37.  
  38. void queens(int i)
  39. {
  40.     for(t[i] = 0;t[i]<8;t[i]++)
  41.     {
  42.         if(empty(i))
  43.         {
  44.             if(i==7){
  45.                 printsol();
  46.                 printf("\n solution %d\n",sol++);
  47.             }
  48.             else
  49.             queens(i+1);
  50.         }
  51.     }
  52. }
  53.  
  54.  
  55.  
  56. int main()
  57. {
  58.     queens(0);
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement