Вопрос задан 26.06.2023 в 15:51. Предмет Информатика. Спрашивает Носенкова Лиза.

Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две

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

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Чечурина Анастасия.

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

Вот пример реализации на Python:

python
def can_king_reach(src_col, src_row, dest_col, dest_row): # Проверка, что разница по строкам и столбцам не превышает 1 return abs(dest_col - src_col) <= 1 and abs(dest_row - src_row) <= 1 # Чтение входных данных src_col, src_row, dest_col, dest_row = map(int, input().split()) # Проверка и вывод результата if can_king_reach(src_col, src_row, dest_col, dest_row): print("YES") else: print("NO")

Вызов этой функции с заданными координатами позволит определить, может ли король попасть из одной клетки в другую за один ход.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос