Ханойские башни на Яве с использованием стеков - PullRequest
0 голосов
/ 22 октября 2011

Я пишу программу для игры в башни Ханоя на Java.Мы должны использовать стеки для представления башен.У меня есть массив из 3 стеков, два из которых я инициализирую, чтобы быть пустым, а последний должен быть заполнен определенным пользователем количеством дисков.У меня есть файл класса Ханоя, который был дан, чтобы мы могли использовать конструктор Ханоя, который принимает целое число и создает диск такого размера.У меня возникли проблемы с определением кода для вставки дисков в стек в моем методе инициализации (их размер отражает их положение, поэтому диск 1 имеет размер 1 и т. Д.). Любая помощь будет полезна.

Вот мой конструктор диска класса Ханой:

public class Hanoi{

private int discSize; //size (radius) of the disc 

public Hanoi(int size){ //creates a disk of the specifed size
    discSize = size;
}

И мой метод инициализации

    public static Stack<Hanoi>[] initialize(int n){

   System.out.println("How many discs in the game?");
   Scanner sc = new Scanner(System.in);
   int numDisc = sc.nextInt();
   int size = numDisc;

   Stack<Hanoi>[] tower = new Stack[3];
    for (int i = 0; i < 3;i++){
      tower[i] = new Stack<Hanoi>();
    }
    }


    Hanoi.PrintStacks(tower);
    // System.out.println(hanoi[2].peek());
     return tower;

Это должно инициализировать их всебыть пустым.Так должен ли я создавать новый объект Ханоя для каждого диска на основе ввода пользователя и помещать их в стек в обратном порядке?

1 Ответ

1 голос
/ 23 октября 2011

Итак, я должен создать новый объект Ханой для каждого диска на основе ввода пользователя и поместить их в стек в обратном порядке?

Да.

for (int i = numDisc; i > 0; --i)
    tower[0].push(new Hanoi(i));
...