Неверно отрабатывает код при тестировании. Задача о шахматной доске и ладье (со Stepik)

Проблема: Неверно отрабатывает мой код. Прошу помочь - почему решение не верное? Где я ошибаюсь?

Задача со степика (Stepik):

"Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли ладья попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести «YES», если из первой клетки ходом ладьи можно попасть во вторую, или «NO» в противном случае."

Пример теста, который не проходит: координаты клетки 1: 2 1 координаты клетки 2: 1 1. На выходе NO, а должно быть YES.

Комментарий к моему решению: Мой код проверяет входят ли вообще координаты в нужный диапазон. Проверка х_1 больше 1 одновременно с тем что х_1 меньше или равно х_2 одновременно с тем что у одинаковые. Я это сделал для того чтобы проверить что для того чтобы попасть в точку х_2;у_2 можно только по х. вторая проверка проверяет тоже самое только с у.

y_1 = int(input()) #столбец первой клетки

x_1 = int(input()) # строка первой клетки

y_2 = int(input()) # столбец второй клетки
x_2 = int(input()) # строка второй клетки

if (x_1 >= 1 and x_1 <= x_2 and y_1 == y_2) or (y_1 >= 1 and y_1 <=y_2 and x_1 == x_2):
 
    print("YES")
else:
    print("NO") 

Ответы (2 шт):

Автор решения: Сергей
  1. У вас x_1 <= x_2 и y_1 <=y_2 условия неверные. Вполне допустима первая клетка 8 8, а вторая 8 1, например.

  2. Раз уж есть проверка на >= 1, то надо и на <= 8 в этой логике.

  3. Лучше разделить проверку на правильность координат и на одинаковость, так как у вас нет ещё и проверки на вхождение числа в диапазон при равенстве (например, x1=x2=9 пройдет вашу проверку).

  4. И проверка на совпадение первой и второй клетки желательна тогда.

Исходя из этого, я бы такое условие сделал для "YES":

if (1 <= x_1 <= 8 and 1 <= y_1 <= 8 and not (x_1 == x_2 and y_1 == y_2))\
        and (y_1 == y_2 or x_1 == x_2):
→ Ссылка
Автор решения: als

попробуй

if x_1 == x_2 or y_1 == y_2:
    print("YES")

в комментах к задаче есть схема как ходит ладья, все поле не надо проверять кстати, в следующей задаче у Антона Мельникова классное решение на форуме, мое любимое за весь курс

→ Ссылка