Мне нужно разместить N фигурок на доске MxM, чтобы две королевы не атаковали друг друга.Отличие от оригинала состоит в том, что королевы могут атаковать только до 5 квадратов от их местоположения, а не весь ряд, столбец или диагональ, как в исходной задаче.
Одна идея, которую я разыгрываю в своейГолова должна разместить первую Королеву на доске у доски [i] [j], а затем также поместить ее в 5 соседних квадратов, как показано на рисунке ниже.
Ниже приведена функция isSafe из исходной задачи N-Queens.
Требуется руководство по проверкеесли размещение королевы безопасно.
def isSafe(board, row, col):
# Check this row on left side
for i in range(col):
if board[row][i] == 1:
return False
# Check upper diagonal on left side
for i,j in zip(range(row,-1,-1), range(col,-1,-1)):
if board[i][j] == 1:
return False
# Check lower diagonal on left side
for i,j in zip(range(row,N,1), range(col,-1,-1)):
if board[i][j] == 1:
return False
return True
Итак, как мне определить, безопасна ли королева, если я ограничу диапазон королевы 5 квадратами?