Мой код состоит из 2 координат шахматного рыцаря (x1, y1) для рыцаря1 и (x2, y2) для рыцаря2. Я хочу знать, может ли рыцарь1 съесть рыцаря2 в его следующем ходу.
Я сделал несколько выражений if (я предполагаю, что это не самый эффективный способ, но я все еще новичок) Одно из моих утверждений возвращает trueдля моего второго оператора if.
Мои входные данные идут первыми.
x1 = int(input('Input x value of knight1: \n'))
y1 = int(input('Input y value of knight1: \n'))
x2 = int(input('Input x2 value of knight2: \n'))
y2 = int(input('Input y2 value of knight2: \n'))
Тогда вот мои операторы if. Я установил их для этих координат:
(x1-1, y1 + 2) (x1-1, y1-2)
(x1-2, y1 + 1) (x1-2, y1-1)
(x1 + 1, y1 + 2) (x1 + 1, y1-2)
(x1 + 2, y1 + 1) (x1 +2, y1-1)
if (x1-1 == x2 and y1+2) or (x1-1 == x2 and y1-2):
print('Yes1')
elif (x1-2 == x2) and (y1+1 or y1-1):
print('Yes2')
elif (x1+1 == x2) and (y1+2 or y1-2):
print('Yes3')
elif (x1+2 == x2) and (y1+1 or y1-1):
print('Yes4')
else:
print('No')
Например, когда я ввожу (3,3) в качестве позиции моего рыцаря1 .. Если я введу (1,5), он должен вернуть «Нет», но вместо этого он возвращает »Да2 'Я понимаю, что x1-2 на самом деле = x2, но у меня есть оператор' и ', означающий, что следующий компаратор также следует учитывать?
Заранее спасибо.