Предмет: Информатика, автор: oycku35896

Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую или NO в противном случае.​
на питоне

Ответы

Автор ответа: Greenow
3

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-х часов, но не в пустую, всё работает. проверял на бумажке) спасибо за вопрос))


oycku35896: вот это код, спасибо огромное
Greenow: был рад помочь) самому стало интересно смогу ли я эту задачу победить, или нет. и сделал себе челлендж)) так что в какой-то мере и тебе спасибо)
Greenow: вот ещё один вариант:
Greenow: x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if abs(x1 - x2) <= 1 and abs(y1 - y2) <= 1:
print('YES')
else:
print('NO')
Похожие вопросы
Предмет: Русский язык, автор: Сана2451