Python решение Задача «Ход коня»

Почти все найденные решения используют abs для того чтобы избавится от минусов и не писать кучу условий. Но по пройденному материалу, ничего про abs не указано. В примерах для занятия по “Условиям”, нет ничего про abs, но там есть второй пример, на который похоже мало кто обращает внимание, так вот, в этом примере показано присвоение переменной ее значения если она меньше нуля.

x = int(input())
if x < 0:
    x = -x
print(x)

Само условие задачи

Шахматный конь ходит буквой “Г” — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом.

Думаю что это наиболее полное и правильное решение задачи «Ход коня», исходя из имеющейся информации данной в этом уроке.

# First point
a = int(input())
b = int(input())

# Second point
aa = int(input())
bb = int(input())

# subtraction
sub_a = a - aa
sub_b = b - bb

if sub_a < 0:
    sub_a = -sub_a
if sub_b < 0:
    sub_b = -sub_b

if a == b == aa == bb:
    print('The same point')
elif a <= 0 or b <= 0 or aa <= 0 or bb <= 0 or a > 8 or aa > 8 or b > 8 or bb > 8:
    print('Error, wrong point')
    
if sub_a == 1 and sub_b == 2 or sub_a == 2 and sub_b == 1:
    print('Yes')
else:
    print('No')

В данном случае, чтобы не писать множество условий вида

if sub_a == -1 and sub_b == 2 or sub_a == -1 and sub_b == -2:
elif sub_a == 1 and sub_b == 2 or sub_a == 1 and sub_b == -2:

и т.д.

Сделаем взятие по модулю через присвоение значения переменной и потом уже будем использовать эти переменные в условиях.

Leave a Reply 123