"Ханойская башня" построена на очень простом алгоритме. Здесь я привожу этот алгоритм, который Вы сможете без труда воспроизвести.
type
THanoiBin = 0..2;
THanoiLevel = 0..9;
procedure MoveDisc(FromPin, ToPin : THanoiPin; Level : THanoiLevel);
// Это Вы должны сделать сами. Переместите один диск с одного штырька на другой.// Диск окажется наверху (естественно, выше него дисков не будет)
Вы можете каким угодно образом перемещать диски 3-х пирамид. 3 пирамиды -
наиболее простая разновидность алгоритма. Таким образом процедура переноса диска
(MoveDisc) аналогична операции переноса диска на верхний уровень (MoveTopDisc):
переместить диск наверх с одного штырька (FromPin) на другой штырек (ToPin) и
передать указатель на штырек-приемник (MoveTower) вместе с уровнем расположения
перемещенного диска. Другое решение заключается в использовании трех массивов
[THanoiLevel] логического типа. В этом случае триггер "Истина (True)" означает
наличие на пирамиде диска с размером, соответствующим порядковому номеру
элемента массива THanoiLevel.
Чтобы переместить пирамиду целиком, вы должны вызвать процедуру MoveTower
следующим образом:
MoveTower(0, 1, Low(THanoiLevel));
Ханойская башня - это компьютерная игра, в которой нужно переместить диски с одного штырька на другой, используя алгоритм, который описывается в статье.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS