我正在编写一个程序来玩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对象,并将它们按相反的顺序推送到堆栈?
答案 0 :(得分:1)
那么我应该根据用户输入为每个磁盘创建一个新的hanoi对象,并按相反顺序将它们推送到堆栈中?
是
for (int i = numDisc; i > 0; --i)
tower[0].push(new Hanoi(i));