0

我正在编写一个程序来用 Java 玩河内塔游戏。我们将使用堆栈来表示塔。我有一个由 3 个堆栈组成的数组,其中两个初始化为空,最后一个填充用户定义的磁盘数量。我有一个 Hanoi 类文件,因此我们可以使用 Hanoi 构造函数,它接受一个整数并创建一个该大小的磁盘。我无法弄清楚在我的初始化方法中将磁盘推入堆栈的代码(它们的大小是它们位置的镜像,因此磁盘 1 的大小为 1 等)任何帮助都将不胜感激。

这是我的 Hanoi 类磁盘构造函数:

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;

这应该将它们全部初始化为空。那么我应该根据用户输入为每个磁盘创建一个新的 Hanoi 对象并以相反的顺序将它们推送到堆栈吗?

4

1 回答 1

1

那么我应该根据用户输入为每个磁盘创建一个新的 hanoi 对象并以相反的顺序将它们推送到堆栈吗?

是的。

for (int i = numDisc; i > 0; --i)
    tower[0].push(new Hanoi(i));
于 2011-10-22T21:45:57.870 回答