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

Помогите понять почему это не работает -
 x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if x1 - x2 == 1 or x1 - x2 == -1 or x1 -x2 == 0 and y1 - y2 == 0 or y1 - y2 ==1 or y1 - y2 == -1:
    print('YES')
else:
    print('NO')

А это работает -
 x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if abs(x1 - x2) <= 1 and abs(y1 - y2) <= 1:
    print('YES')
else:
    print('NO')

Входные данные
4
3
2
2

Мне не нужно решение, я хочу лишь понять почему так происходит
Romissevd
Потому как условия нужно было брать в скобки, а так логика совсем другая
 if (x1 - x2 == 1 or x1 - x2 == -1 or x1 -x2 == 0) and (y1 - y2 == 0 or y1 - y2 ==1 or y1 - y2 == -1):
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB