Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 25, 2020 19:34:05

Blockbusti
Зарегистрирован: 2020-04-25
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача для новичков

Условие:
Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 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

Мне не нужно решение, я хочу лишь понять почему так происходит

Офлайн

#2 Апрель 25, 2020 22:30:18

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Задача для новичков

Потому как условия нужно было брать в скобки, а так логика совсем другая

 if (x1 - x2 == 1 or x1 - x2 == -1 or x1 -x2 == 0) and (y1 - y2 == 0 or y1 - y2 ==1 or y1 - y2 == -1):

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version