我正在编写一个程序来用 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 对象并以相反的顺序将它们推送到堆栈吗?