
Задача на Python: 1. Требуется определить, бьет ли слон, стоящий на клетке с указанными
координатами (номер строки и номер столбца), фигуру, стоящую на другой клетке. Шахматная доска 8х8 1.1 Создать возможность для слона идти не только по диагонали вправо, но и влево. (желательно решить через циклы)

Ответы на вопрос

slon = []
figure = []
slon.append(int(input('Введите номер строки ( слон ): ')))
slon.append(int(input('Введите номер столбца ( слон ): ')))
figure.append(int(input('Введите номер строки ( фигура ): ')))
figure.append(int(input('Введите номер столбца ( фигура ): ')))
if slon[0] < figure[0]:
if slon[1] < figure[1]:
while True:
if slon[0] < 8:
slon[0] += 1
if slon[1] < 8:
slon[1] += 1
if slon[0] == figure[0] and slon[1] == figure[1]:
print('Слон бьёт фигуру')
break
if slon[0] == 8 or slon[1] == 8:
print('Слон НЕ бьёт фигуру')
break
elif slon[1] > figure[1]:
while True:
if slon[0] < 8:
slon[0] += 1
if slon[1] > 0:
slon[1] -= 1
if slon[0] == figure[0] and slon[1] == figure[1]:
print('Слон бьёт фигуру')
break
if slon[0] == 8 or slon[1] == 1:
print('Слон НЕ бьёт фигуру')
break
else:
print('Слон НЕ бьёт фигуру')
elif slon[0] > figure[0]:
if slon[1] > figure[1]:
while True:
if slon[0] > 0:
slon[0] -= 1
if slon[1] > 0:
slon[1] -= 1
if slon[0] == figure[0] and slon[1] == figure[1]:
print('Слон бьёт фигуру')
break
if slon[0] == 1 or slon[1] == 1:
print('Слон НЕ бьёт фигуру')
break
elif slon[1] < figure[1]:
while True:
if slon[0] > 0:
slon[0] -= 1
if slon[1] < 8:
slon[1] += 1
if slon[0] == figure[0] and slon[1] == figure[1]:
print('Слон бьёт фигуру')
break
if slon[0] == 1 or slon[1] == 8:
print('Слон НЕ бьёт фигуру')
break
else:
print('Слон НЕ бьёт фигуру')
else:
print('Слон НЕ бьёт фигуру')



Для решения этой задачи на Python, вы можете использовать следующий код. Этот код определит, бьет ли слон фигуру, стоящую на указанной клетке. Мы учитываем движение слона как по диагонали вправо, так и влево.
pythondef is_bishop_attacking(x1, y1, x2, y2):
# Проверяем, что координаты находятся на доске 8x8
if x1 < 1 or x1 > 8 or y1 < 1 or y1 > 8 or x2 < 1 or x2 > 8 or y2 < 1 or y2 > 8:
return False
# Проверяем, что слон движется по диагонали
if abs(x1 - x2) != abs(y1 - y2):
return False
# Проверяем, что слон движется по диагонали вправо или влево
if (x1 - x2) * (y1 - y2) > 0:
return True
return False
# Пример использования:
x1 = 3 # Координаты слона
y1 = 3
x2 = 5 # Координаты фигуры, которую нужно проверить
y2 = 5
if is_bishop_attacking(x1, y1, x2, y2):
print("Слон бьет фигуру!")
else:
print("Слон не бьет фигуру.")
Вы можете изменить значения x1
, y1
, x2
, и y2
для проверки разных комбинаций. Функция is_bishop_attacking
возвращает True
, если слон бьет фигуру, и False
в противном случае.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili