Помощь - Поиск - Пользователи - Календарь
Полная версия: шахматный слон
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
art88
Нужна помощь, срочно!
-----------------------------
Поле шахматной доски занумеровано цифрами от 1 до 8.
Нумерация начинается в левом нижнем углу.
Вводится начальная и конечная позиция слона, определить
может ли слон перейти из начальной в конечную позицию за один ход,
если нет узнать, как это можно сделать за два хода
(вывести промежуточную позицию).
-----------------------------
Для перемещения в один ход я сделал, а со вторым вариантом справиться н могу.
-----------------------------
см chess_el.pas
Malice
Самый простой способ - перебор всех клеток доски и проверка твоего же условия для обоих клеток.
volvo
art88, дело в том, что возможны варианты, когда слон вообще не сможет перейти в указанную позицию (черный слон - в смысле, стоящий на черной клетке - никогда не попадет на белое поле и наоборот), так что сначала проверяй этот вариант:
If Odd(abs(m - k) + abs(n - l)) Then
  WriteLn('Слон ВООБЩЕ не может перейти в указанную позицию')

:yes:
art88
спасибо, я уже сам решил эту задачу и без перебора,как предлагал malice.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.