Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую или NO в противном случае.
на питоне
Ответы
import sys
BarrYes = 0;
# Клетка 'Куда ходить'
print('Обозначим клетку хода');
print('');
xColumnOpp = int(input('Введите номер столбца в рамках (1-8) : '));
xCellOpp = int(input('Введите номер клетки столбца в рамках (1-8) : '));
print('');
# Проверка на ошибки ввода чисел
print('Проверка на ошибки ввода входных чисел');
print('');
if xColumnOpp > 8:
print('Входные числа столбца введены неправильно');
sys.exit()
elif xColumnOpp < 1:
print('Входные числа столбца введены неправильно');
sys.exit()
else:
print ('Входные числа столбца введены правильно');
print ('Входные числа столбца успешно проверены');
print('');
if xCellOpp > 8:
print('Входные числа клеток столбца введены неправильно');
sys.exit()
elif xCellOpp < 1:
print('Входные числа клеток столбца введены неправильно');
sys.exit()
else:
print ('Входные числа клеток столбца введены правильно');
print ('Входные числа клеток столбца успешно проверены');
print('');
print('');
# Клетка 'Где стоит король'
print('Обозначим клетку состояния объекта "Король"');
print('');
xColumnKing = int(input('Введите номер столбца в рамках (1-8) : '));
xCellKing = int(input('Введите номер клетки столбца в рамках (1-8) : '));
# Проверка на ошибки ввода чисел
print('Проверка на ошибки ввода входных чисел состояния Короля');
print('');
if xColumnKing > 8:
print('Входные числа столбца введены неправильно');
sys.exit()
elif xColumnKing < 1:
print('Входные числа столбца введены неправильно');
sys.exit()
else:
print ('Входные числа столбца введены правильно');
print ('Входные числа столбца успешно проверены');
print('');
if xCellKing > 8:
print('Входные числа клеток столбца введены неправильно');
sys.exit()
elif xCellKing < 1:
print('Входные числа клеток столбца введены неправильно');
sys.exit()
else:
print ('Входные числа клеток столбца введены правильно');
print ('Входные числа клеток столбца успешно проверены');
print('');
print('');
print('Производится вычисление, подождите пожалуйста');
print('');
print('');
print('Ваш ответ готов!');
print('');
if xColumnOpp == xColumnKing + 1 or xColumnOpp == xColumnKing -1 or xColumnOpp == xColumnKing :
BarrYes += 1;
else :
BarrYes += 0;
if xCellOpp == xCellKing + 1 or xCellOpp == xCellKing -1 or xCellOpp == xCellKing :
BarrYes += 1;
else :
BarrYes += 0;
# Ответ
if BarrYes == 2:
print('YES');
else:
print('NO');
#маялся с этой фигнёй около 3-х часов, но не в пустую, всё работает. проверял на бумажке) спасибо за вопрос))
y1 = int(input())
x2 = int(input())
y2 = int(input())
if abs(x1 - x2) <= 1 and abs(y1 - y2) <= 1:
print('YES')
else:
print('NO')