задача "ход слона"
Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом. Программа должна вывести YES, если из первой клетки ходом слона можно попасть во вторую, или NO в противном случае. использовать можно только оператор if
мой код:
1x=(int(input())
1y=(int(input())
2x=(int(input())
2y=(int(input())
if (1x==2x)or(1y==2y):
print("NO")
else:
print("YES")
выдаёт ошибку
Ответы (3 шт):
По картинке ниже вы сразу поймете, как ходит слон в шахматах.

Как можно заметить, перемещается эта боевая единица по диагонали вперед и назад на любую возможную дистанцию. Определяем, может ли слон попасть с первой клетки на вторую одним ходом. для этого пишем:
# Ввод полей, сейчас слон на поле e4
m1=input('Введите первое поле например a1 ')
m2=input('Введите второе поле например c3 ')
# chess_board - это буквы внизу шахматной доски
chess_board= 'abcdefgh'
# Определяем на сколько слон переместился по горизонтали
move=(chess_board.index(m1[0]) - chess_board.index(m2[0]))
# Проверяем соответствует ли это перемещению по вертикали
if int(m1[1])+move == int(m2[1]) or int(m1[1])-move == int(m2[1]):
print('TRUE')
else:
print('FALSE')
Давайте протестируем, я не все клетки проверил.
Реальное решение - в одну строку (оператор if). Остальное - только ввод, вывод и отладка.
p1=input('Введите первое поле ')
p2=input('Введите второе поле ')
if abs('abcdefgh'.index(p1[0]) - 'abcdefgh'.index(p2[0])) == abs(int(p1[1])-(int(p2[1]))) :
print('TRUE')
else:
print('FALSE')
x_1, y_1, x_2, y_2 = (int(input('column number: ')), int(input('line number: ')),
int(input('column number: ')), int(input('line number: ')))
if 1 <= x_1 <= 8 and 1 <= x_2 <= 8 and 1 <= y_1 <= 8 and 1 <= y_2 <= 8:
if abs(x_2 - x_1) == abs(y_2 - y_1):
print('Yes')
else:
print('No')
else:
print('The number must be between 1 and 8')