Вопрос задан 25.09.2023 в 15:30. Предмет Информатика. Спрашивает Ляхман Богдан.

Поле шахматной доски определяется парой натуральных чисел (номер вертикали – номер горизонтали)

из диапазона 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")
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Азизян Эдик.

Ответ:

Если я правильно понял, то код можно сократить в несколько раз.

Объяснение:

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")

0 0
Отвечает Никишина Юля.

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)")

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваш код имеет несколько синтаксических ошибок и логических проблем. Вот исправленный и упрощенный вариант кода:

python
k = 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")

Изменения и упрощения включают в себя:

  1. Использование abs() для определения расстояния между полями, чтобы учесть случаи, когда конь двигается влево или вверх.

  2. Использование elif для проверки условий, когда конь угрожает полю, чтобы избежать повторения кода.

  3. Удаление ненужных проверок и упрощение логики.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос