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