Я наткнулся на проблему на snakify.org и решил, используя код ниже.
может ли этот код быть более упрощенным? < /p>
Оператор задачи: < /p>
Шахматный король движется горизонтально, вертикально или по диагонали в любую соседнюю ячейку. Учитывая две разные ячейки шахматной доски, определите, может ли король перейти от первой ячейки ко второму в одном ходе.
Программа получает вход четырех чисел от 1 до 8, каждый из которых указывает столбец и номер строки, сначала два - для первой ячейки, а затем в последние два - для второй ячейки. Программа должна вывести да, если король может перейти от первой ячейки ко второму в одном ходе или нет иначе.
Код: Выделить всё
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
def xcell(x1,x2):
x=0
if x1 -x2 > 0:
x = x1 - x2
elif x1-x2 < 0:
x = x2-x1
else: x
return x
def ycell(y1,y2):
y=0
if y1 -y2 >= 0:
y = y1 - y2
elif y1-y2 < 0:
y = y2-y1
else: y
return y
if ((xcell(x1,x2) == 1) & (ycell(y1,y2) == 0))or ((xcell(x1,x2) == 0)
(ycell(y1,y2) == 1))or((xcell(x1,x2) == 1) & (ycell(y1,y2) == 1)):
print("YES")
else: print("NO")
Подробнее здесь: https://stackoverflow.com/questions/580 ... g-movement