【发布时间】:2016-09-27 19:19:09
【问题描述】:
我正在编写一个 2048 克隆(一个简单的克隆),我正在研究的方法是将多维数组中的数字尽可能沿指定方向滑动。我有这个向左滑动的代码,但我不知道如何让它向上、向下和向右滑动。
public void moveLeft(int[][] grid)
{
int [][] copy = grid;
for(int x = 0; x < copy.length; x++){
int[] row = new int[4];
for(int y = 0; y < copy[x].length; y++){
if (copy[x][y] != 0)
{
int temp = 0;
while(row[temp] != 0) {
temp++;
}
row[temp] = copy[x][y];
}
}
copy[x] = row;
}
grid = copy;
}
有什么想法吗?非常感谢
【问题讨论】:
-
应该是
moveUp(int[][] grid)吗?因为你没有使用matriz并且grid没有在任何地方声明。 -
是的,我正在用西班牙语写作,但忘记翻译了。已编辑。
-
请记住,数组是对象而不是原始值。
copy实际上不是副本。它是指向同一个对象的另一个引用。如果要复制它,则必须使用clone()或在两个 for 循环中手动执行。 -
哦,好的,我复制了一份,以备后用,看看板子有没有变化。忽略那个。该方法可以完美地向左滑动,但我想要的是能够向其他方向滑动,我不知道如何。谢谢。
-
理解你的代码并不容易。这不是很直接,而且你没有 cmet 解释你在做什么。此外,该方法称为
moveUp(),但您正在使用它向左移动?
标签: java multidimensional-array 2048