Предмет:
ИнформатикаАвтор:
hayleyОтвет:
Для решения задачи можно создать функцию, которая будет принимать координаты двух фигур и проверять, может ли первая фигура пойти безопасно. Например, для случая конь и ферзь можно использовать следующий код на языке Python:
def can_move_safely(knight_pos, queen_pos):
# Проверяем, что координаты находятся в пределах доски
if knight_pos[0] < 0 or knight_pos[0] > 7 or knight_pos[1] < 0 or knight_pos[1] > 7 \
or queen_pos[0] < 0 or queen_pos[0] > 7 or queen_pos[1] < 0 or queen_pos[1] > 7:
return False
# Проверяем, что первая фигура - конь
if abs(knight_pos[0] - queen_pos[0]) == 2 and abs(knight_pos[1] - queen_pos[1]) == 1 \
or abs(knight_pos[0] - queen_pos[0]) == 1 and abs(knight_pos[1] - queen_pos[1]) == 2:
# Фигуры бьют друг друга
return False
# Проверяем, что первая фигура - ферзь
if knight_pos[0] == queen_pos[0] or knight_pos[1] == queen_pos[1] \
or abs(knight_pos[0] - queen_pos[0]) == abs(knight_pos[1] - queen_pos[1]):
# Фигуры бьют друг друга
return False
return True
Здесь knight_pos и queen_pos - это кортежи, содержащие координаты фигур. Например, (2, 3) означает, что фигура стоит на вертикали 2 и горизонтали 3.
Для проверки всех сочетаний фигур можно написать следующий код:
# Вариант л): конь и ферзь
for knight_pos in [(V, g), (V + 1, g + 2), (V + 2, g + 1), (V + 2, g - 1),
(V + 1, g - 2), (V - 1, g - 2), (V - 2, g - 1), (V - 2, g + 1),
(V - 1, g + 2)]:
if can_move_safely(knight_pos, (v2, g2)):
print("Конь на", knight_pos, "может пойти безопасно")
break
else:
print("Конь не может пойти безопасно")
if can_move_safely((V, g), (v2, g2)):
print("Ферзь на", (V, g), "может пойти безопасно")
else:
print("Ферзь не может пойти безопасно")
# Вариант м): конь и слон
for knight_pos in [(V, g), (V +
Автор:
harleyszr6Добавить свой ответ
Предмет:
МатематикаАвтор:
pinataОтветов:
Смотреть
Предмет:
ИсторияАвтор:
hollyhigginsОтветов:
Смотреть