Чтобы быстро начать с этого, это источник всех дисков:

и нам нужно переместить все диски с первого стержня на последний стержень

Легкий? Не совсем.

Для этого существуют определенные правила:

См. Правила игры в Ханойской башне.

Подводя итог, перемещайте только один диск за раз: больший диск не может быть помещен поверх меньшего диска, а все диски, кроме перемещаемого, должны быть закреплены.

Типичное решение выглядит следующим образом:

Мы будем использовать рекурсию для создания решения.

Итак, давайте создадим рекурсивный метод, который принимает 4 параметра.

  1. Количество дисков = 3 (например)
  2. ИсточникPeg=1
  3. Место назначения=3
  4. Запасной колышек=2

RunTowerOfHanoi(счетчик, 1, 3, 2);

Алгоритм:

  1. Переместите все, кроме последнего диска, на второй стержень

RunTowerOfHanoi(n — 1, SourcePeg, SparePeg, DestinationPeg); //Перемещаем все элементы (кроме последнего) из источника в запасной (с первого на второй стержень)

2. Затем переместите весь диск на третью/целевую привязку.

RunTowerOfHanoi(n — 1, SparePeg, DestinationPeg, SourcePeg); //Теперь перемещаем все из запасного в место назначения (со второго на третье)

Каждый рекурсивный метод вызывается для перемещения диска по одному.

Вот ссылка на Полный код

Метод RunTowerOfHonai: