Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. bdd prop3(const bdd cur[NUM_OB][NUM_OB], int cVal, const bdd neigh[NUM_OB][NUM_OB], int nVal)
  2. {
  3.     bdd task = bddtrue;
  4.     int neighPos;
  5.     int right = -2;
  6.    
  7.     for (int i = 0; i < NUM_OB; i++)
  8.     {
  9.         if (i % NUM_COLUMN == 0)
  10.             task &= !neigh[i][nVal]; //================ 1 столбик не мб правым соседом
  11.        
  12.         if (i % NUM_COLUMN == NUM_COLUMN - 1)
  13.             task &= !cur[i][cVal]; //============= 3 столбик не имеет соседа справа
  14.     }
  15.    
  16.     for (int i = 0; i < NUM_COLUMN; i++)
  17.     {
  18.         task &= !cur[i][cVal];  //================== 1 строка не может иметь правого верхнего соседа
  19.     }
  20.    
  21.     for (int i = NUM_OB - NUM_COLUMN; i < NUM_OB; i++)
  22.     {
  23.         task &= !neigh[i][nVal];   //=================== 3 строка не может быть правым верхним соседом
  24.     }
  25.        
  26.     for(int i = 1; i < NUM_COLUMN; i++){
  27.         for(int j = 0; j < NUM_COLUMN-1; j++){
  28.             neighPos = i*NUM_COLUMN+j + right;
  29.             task &= !(cur[i*NUM_COLUMN+j][cVal] ^ neigh[neighPos][nVal]);
  30.         }
  31.     }
  32.    
  33.     return task;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement