如何在按下按钮时制作一个二维数组的新深拷贝?
基本上,我创建了一个带有按钮的游戏场地。这个游戏叫做推箱子,是一种益智游戏。玩家通过箭头键在固定地图(8x8个按钮)上移动到另一个按钮。 我想要实现撤消功能。所以我想每次移动前都创建一个JButton数组的深拷贝,并将其保存到堆栈中。因此,当我按下撤消按钮时,它会调用我的堆栈的pop函数。问题是,我需要声明和初始化另一个JButton [] [],以便在每次移动之前保存游戏场地。由于我想要无限可能的移动和撤消,所以我觉得这似乎是不可能的。我无法声明和初始化无限不同的JButton [] []数组。有什么办法可以解决这个问题吗?
以下是如何复制2d对象数组:
JButton[][] tempArray = new JButton[jbArray.length][jbArray[0].length];
for (int i = 0; i < getJbArray().length; i++) {
for (int j=0;j<getJbArray()[0].length;j++) {
tempArray[i][j]=jbArray[i][j];
}
}
movesStack.push(tempArray);