
Поле шахматной доски определяется парой натуральных чисел (номер вертикали – номер горизонтали)
из диапазона 1-8. На поле (k, l) расположен: конь. Угрожает ли он полю (m, n)? что подредактировать или вовсе убрать k = int(input("Введите k, k не должна быть меньше 1 и не должна быть больше 8 ")) #расположение коня по вертикали k<9 and k>0 l = int(input("Введите l, l не должна быть меньше 1 и не должна быть больше 8 " )) #расположение коня по горизонтали l<9 and l>0 print(k,l,"положение коня") m = int(input("Введите m, m не должна быть меньше 1 и не должна быть больше 8 " )) #ветрикаль поля проверки m<9 and m>0 n = int(input("Введите n, n не должна быть меньше 1 и не должна быть больше 8 " )) #горизанталь поля проверки n<9 and n>0 if (k+2 == m) and (l+1 == n): print("конь угражает полю m,n") elif (k+2 == m) and (l+1 != n): print("конь не угражает полю m,n") elif (k+2 != m) and (l+1 == n): print("конь не угражает полю m,n") elif (k+2 != m) and (l+1 != n): print("конь не угражает полю m,n") elif (k+2 == m) and (l-1 == n): print("конь угражает полю m,n") elif (k+2 == m) and (l-1 != n): print("конь не угражает полю m,n") elif (k+2 != m) and (l-1 == n): print("конь не угражает полю m,n") else (k+2 != m) and (l-1 != n): print("конь не угражает полю m,n") if (k-2 == m) and (l-1 == n): print("конь угражает полю m,n") elif (k-2 == m) and (l-1 != n): print("конь не угражает полю m,n") elif (k-2 != m) and (l-1 == n): print("конь не угражает полю m,n") else (k-2 != m) and (l-1 != n): print("конь не угражает полю m,n") if (k-2 == m) and (l+1 == n): print("конь угражает полю m,n") elif (k-2 == m) and (l+1 != n): print("конь не угражает полю m,n") elif (k-2 != m) and (l+1 == n): print("конь не угражает полю m,n") else (k-2 != m) and (l+1 != n): print("конь не угражает полю m,n") if (k-1 == m) and (l-2 == n): print("конь угражает полю m,n") elif (k-1 == m) and (l-2 != n): print("конь не угражает полю m,n") elif (k-1 != m) and (l-2 == n): print("конь не угражает полю m,n") else (k-1 != m) and (l-2 != n): print("конь не угражает полю m,n") if (k+1 == m) and (l-2 == n): print("конь угражает полю m,n") elif (k+1 == m) and (l-2 != n): print("конь не угражает полю m,n") elif (k+1 != m) and (l-2 == n): print("конь не угражает полю m,n") else (k+1 != m) and (l-2 != n): print("конь не угражает полю m,n") if (k-1 == m) and (l+2 == n): print("конь угражает полю m,n") elif (k-1 != m) and (l+2 != n): print("конь не угражает полю m,n") elif (k+1 == m) and (l+2 == n): print("конь угражает полю m,n") else (k+1 != m) and (l+2 != n): print("конь не угражает полю m,n")

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

Ответ:
Если я правильно понял, то код можно сократить в несколько раз.
Объяснение:
k, l = int(input("Введите номер вертикали коня: ")), int(input("Введите номер горизонтали коня: "))
m, n = int(input("Введите номер вертикали: ")), int(input("Введите номер горизонтали: "))
if (abs(k - m) == 2 and abs(l - n) == 1) or (abs(k - m) == 1 and abs(l - n) == 2):
print("Конь угрожает полю m, n")
else:
print("Конь не угрожает полю m, n")



horse_x = int(input("Горизонталь коня (1..8): "))
horse_y = int(input("Вертикаль коня (1..8): "))
cell_x = int(input("Горизонталь поля (1..8): "))
cell_y = int(input("Вертикаль поля (1..8): "))
if (cell_x - horse_x)**2 + (cell_y - horse_y)**2 == 5:
print("Конь угрожает полю (m, n)")
else:
print("Конь не угрожает полю (m, n)")



Ваш код имеет несколько синтаксических ошибок и логических проблем. Вот исправленный и упрощенный вариант кода:
pythonk = int(input("Введите k, k не должна быть меньше 1 и не должна быть больше 8: "))
l = int(input("Введите l, l не должна быть меньше 1 и не должна быть больше 8: "))
m = int(input("Введите m, m не должна быть меньше 1 и не должна быть больше 8: "))
n = int(input("Введите n, n не должна быть меньше 1 и не должна быть больше 8: "))
if abs(k - m) == 2 and abs(l - n) == 1:
print("Конь угрожает полю m, n")
elif abs(k - m) == 1 and abs(l - n) == 2:
print("Конь угрожает полю m, n")
else:
print("Конь не угрожает полю m, n")
Изменения и упрощения включают в себя:
Использование
abs()
для определения расстояния между полями, чтобы учесть случаи, когда конь двигается влево или вверх.Использование
elif
для проверки условий, когда конь угрожает полю, чтобы избежать повторения кода.Удаление ненужных проверок и упрощение логики.


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