Написать на языке Питон
12.286.*Шахматную доску будем представлять в виде квадратного символьного массива
размером 8х8. Даны натуральные числа V и g1, указывающие номера верти-
кали (при счете слева направо) и горизонтали (при счете снизу вверх) для поля,
на котором стоит белая шахматная фигура, и числа V2 и g2 указывающие
соответствующие координаты второй, черной, фигуры (15 v 58, 15g 58,
15v S8, 15gz 58). Определить поля (отметить их символом "+"), на которые
может пойти первая фигура, не попав под удар второй фигуры. Рассмотреть сле-
дующие варианты сочетаний первой и второй фигур:
л) конь и ферзь;
м) конь и слон;
н) слон и слон;
о) слон и ферзь;
п) слон и конь;
а) ладья и ладья;
б) ладья и ферзь;
в) ладья и конь;
г) ладья и слон;
д) ферзь и ферзь;
е) ферзь и ладья;
ж) ферзь и конь;
3) ферзь и слон;
и) конь и конь;
к) конь и ладья;
р) слон и ладья;
с) король и слон;
т) король и ферзь;
y) король и конь;
ф) король и ладья.

Ответы
Пример решения задачи для первого варианта (конь и ферзь):
# Создаем шахматную доску
board = [['-' for _ in range(8)] for _ in range(8)]
# Устанавливаем фигуры на доску
v1, g1 = 2, 3 # Координаты белого коня
v2, g2 = 4, 4 # Координаты черного ферзя
board[v1][g1] = 'K'
board[v2][g2] = 'Q'
# Функция для проверки, может ли фигура находиться на данном поле
def can_be_placed(piece, row, col):
if piece == 'K':
# Конь может ходить на поле, если разница между вертикалью и горизон-
# талью равна 2 и 1 соответственно, или наоборот
if abs(row - v2) == 2 and abs(col - g2) == 1 or \
abs(row - v2) == 1 and abs(col - g2) == 2:
return True
elif piece == 'Q':
# Ферзь может ходить на поле, если оно находится на одной вертикали,
# горизонтали или диагонали с ним
if row == v2 or col == g2 or \
abs(row - v2) == abs(col - g2):
return True
return False
# Проверяем каждое поле доски и отмечаем возможные ходы коня и ферзя
for row in range(8):
for col in range(8):
if can_be_placed('K', row, col) or can_be_placed('Q', row, col):
board[row][col] = '+'
# Выводим доску с отмеченными ходами
for row in board:
print(' '.join(row))
Аналогично можно решить и другие варианты сочетаний фигур, заменив функцию can_be_placed на соответствующую функцию для каждой фигуры.