Что означает эта строка if (!(result = tryingQ(i + 1))). C++. 8 queens

Программа выводит 8 ферзей на поле 8х8 так, что они не били друг друга. Но не очень понятна понятна строка с условием if (!(result = tryingQ(i + 1)))

"""

       #include <iostream>

       using namespace std;

       int board[8][8];

       void setQ(int i, int j)
       {
           for (int x = 0; x < 8; x++)
           {
            board[x][j]++;
               board[i][x]++;
            int D;
            D = j - i + x;
            if (D >= 0 && D < 8)
                board[x][D]++;
            D = j + i - x;
            if (D >= 0 && D < 8)
                board[x][D]++;
           }
           board[i][j] = 777;
       }

       void deleteQ(int i, int j)
       {
           for (int x = 0; x < 8; x++)
        {
            board[x][j]--;
            board[i][x]--;
            int D;
            D = j - i + x;
            if (D >= 0 && D < 8)
                board[x][D]--;
            D = j + i - x;
            if (D >= 0 && D < 8)
                board[x][D]--;
           }
           board[i][j] = 0;
       }

       bool tryingQ(int i)
       {
           bool result = false;
           for (int j = 0; j < 8; j++)
           {
               if (board[i][j] == 0)
               {
                   setQ(i, j);
                   if (i == 7)
                       result = true;
                   else
                   {
                       if (!(result = tryingQ(i + 1)))
                           deleteQ(i, j);
                   }
               }
               if (result)
                   break;
           }
           return result;
       }

       int main()
       {
           for (int i = 0; i < 8; i++)
               for (int j = 0; j < 8; j++)
                   board[i][j] = 0;

           tryingQ(0);

           for (int i = 0; i < 8; i++)
           {
               for (int j = 0; j < 8; j++)
               {
                   if (board[i][j] == 777)
                    cout << "Q ";
                else
                    cout << "0 ";
               }
               cout << endl;
           }
       }
       

"""


Ответы (0 шт):