如何在按钮上按下2维数组的新深度副本?2d对象数组的深层副本
基本上我用按钮创建了一个游戏场。这场比赛被称为推箱子,这是一个谜题。玩家使用固定地图上的箭头键(8x8按钮)从一个按钮移动到另一个按钮。 我想实现一个撤消功能。所以我认为我只是在每次移动之前创建一个JButton数组的深层副本并将其保存到堆栈中。所以当我按下撤消按钮时,它会调用我的堆栈的弹出功能。问题是我需要声明并初始化另一个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);
也许你可以更简单:存储_actions_,而不是_state_。每撤消一步,恢复操作。 – rpax