Реализация по принципу сверху-вниз
: решение задачи сводим к решению трёх подзадач.
(defun move (n from to spare)
(cond ((= n 0)
"Готово")
(t
(move (1- n) from spare to)
(print "Перенести диск")
(princ from)
(princ " -> ")
(princ to)
(move (1- n) spare to from))))
(move 3 1 2 3)
Приложение с графическим интерфейсом, демонстрирующее процесс перекладывания
дисков в цвете
, для любой из платформ Windows, Linux или MacOS
доступно для скачивания на сайте разработчика:
http://weitz.de/hanoi/.