Дописать метод вывода Ханойских башен - C#
Формулировка задачи:
Итак. имеется следующий код:
нужно дописать метод PrintTowers, но почему-то не получается, пробовал разные варианты, но не могу получить доступ к массивам tower. Выводить должен как на картинке во вложении. Бесконечные плюсы в карму за помощь
Листинг программы
- public class Hanoi
- {
- int size, moves;
- int[] tower1, tower2, tower3;
- int top1, top2, top3;
- Random rnd = new Random();
- public Hanoi(int size)
- {
- this.size = size;
- tower1 = new int[size];
- tower2 = new int[size];
- tower3 = new int[size];
- top1 = size; top2 = top3 = moves = 0;
- }
- public void Fill()
- {
- for (int i = 0; i < size; i++)
- tower1[i] = size - i;
- }
- public void HanoiTowers()
- {
- HT(ref tower1, ref tower2, ref tower3, ref top1, ref top2, ref top3, size);
- Console.WriteLine("\nВсего ходов 2^n -1 = {0}", moves);
- }
- /// <summary>
- /// Перенос count колец с tower1 на tower2, соблюдая
- /// правила и используя tower3. Свободные вершины
- /// башен - top1, top2, top3
- /// </summary>
- ///
- void HT(ref int[] t1, ref int[] t2, ref int[] t3, ref int top1, ref int top2, ref int top3, int count)
- {
- if (count == 1) Move(ref t1, ref t2, ref top1, ref top2);
- else
- {
- HT(ref t1, ref t3, ref t2, ref top1, ref top3, ref top2, count - 1);
- Move(ref t1, ref t2, ref top1, ref top2);
- HT(ref t3, ref t2, ref t1, ref top3, ref top2, ref top1, count - 1);
- }
- }//HT
- void Move(ref int[] t1, ref int[] t2, ref int top1, ref int top2)
- {
- t2[top2] = t1[top1 - 1];
- top1--; top2++; moves++;
- //PrintTowers();
- }//Move
- public void TestHanoiTowers()
- {
- Hanoi han = new Hanoi(10);
- Console.WriteLine("Ханойские башни");
- han.Fill();
- han.PrintTowers();
- han.HanoiTowers();
- han.PrintTowers();
- }
- }//Hanoi
Решение задачи: «Дописать метод вывода Ханойских башен»
textual
Листинг программы
- void HT(ref int[] t1, ref int[] t2, ref int[] t3, ref int top1, ref int top2, ref int top3, int count)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д