Что означает эта строка 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;
}
}
"""