Чтобы решить задачу о том, может ли ладья в шахматах выполнить ход с одной клетки на другую, мы должны учитывать два важных правила для передвижения ладьи:
- Ладья может двигаться на любое количество клеток по вертикали (вверх/вниз) или по горизонтали (вправо/влево), но не может двигаться по диагонали.
- Начальные и конечные координаты не совпадают.
Итак, для проверки, возможно ли осуществить ход, необходимо проверить следующее:
- Если X1 (начальная строка) равно X2 (конечная строка), значит ладья перемещается вниз/вверх.
- Если Y1 (начальный столбец) равен Y2 (конечный столбец), значит ладья перемещается вправо/влево.
Если одно из этих условий выполняется, то ход возможен.
Пошаговое решение:
Считать входные данные. Мы считываем координаты стартовой и конечной точек:
- Первая строка: X1, Y1
- Вторая строка: X2, Y2
Проверка условий. Проверяем условия для возможного хода:
- Проверить, равны ли X1 и X2.
- Проверить, равны ли Y1 и Y2.
Вывод результатов. Если одно из двух условий истинно, выводим "YES". В противном случае — "NO".
Программа на языке «Кумир»:
program RookMove;
var
X1, Y1, X2, Y2: integer;
begin
// Считывание координат начальной клетки
readln(X1, Y1);
// Считывание координат конечной клетки
readln(X2, Y2);
// Проверяем возможность хода
if (X1 = X2) or (Y1 = Y2) then
writeln('YES') // Если хотя бы одно условие верно
else
writeln('NO'); // Если ни одно условие не выполнимо
end.
Объяснение программы:
- Программа сначала объявляет переменные для хранения координат.
- После чтения координат, она проверяет, равны ли координаты по одной из осей (либо X, либо Y).
- В соответствии с проверкой выводится результат: "YES", если ход возможен, и "NO", если нет.
Таким образом, наша программа эффективно определяет, может ли ладья сделать указанный ход, следуя правилам шахмат.