【发布时间】:2014-02-16 17:50:02
【问题描述】:
我正在尝试为我的计算机科学实验室制作一款名为 Numbrosia 的游戏。它必须是 5x5 板,但是当我尝试将行中的值向右或向左移动时,我的一些列消失了。
数组的值为
1 -2 1 0 0
-1 0 4 2 0
0 -4 1 -1 0
0 1 -1 -1 -2
0 -3 1 -1 0
但我得到了
0 0 1 -2
0 2 4 0
0 -1 1 -4
0 -1 -1 1
0 -1 1 -3
我将把我的一段代码移到右边
public public static void RowRight(int i, int[][] array){
for(int row = 0; row < array.length; row++){
int temp = array[i][array.length-1];
for(int col = array.length-2; col > 0; col--){
array [row][col+1] = array[row][col];
System.out.print(array[row][col] + " ");
}
System.out.println("");
}
}
我等待某人的回应谢谢你
---------更新------------------
我已成功打印了 5 列,但出现了一个新问题。如果我将行中的值向左或向右移动,最后一个数字(左移时是第一个数字)或第一个数字(右移时是最后一个数字)旁边的位置具有与第一个或最后一个完全相同的数字。 我会把输出放出来
数组值又是
1 -2 1 0 0
-1 0 4 2 0
0 -4 1 -1 0
0 1 -1 -1 -2
0 -3 1 -1 0
例如,我需要让第一行向左移动,所以它应该打印
-2 1 0 0 1
-1 0 4 2 0
0 -4 1 -1 0
0 1 -1 -1 -2
0 -3 1 -1 0
但我得到了这个
-2 1 0 1 1
-1 0 4 2 0
0 -4 1 -1 0
0 1 -1 -1 -2
0 -3 1 -1 0
我该如何解决这个问题?
【问题讨论】:
-
您通常将行向右或向上移动,您的意思是向左/向右移动它们吗?
-
@peter.petrov - 我认为这意味着在一行内左/右移动值。
-
如果只想移动一行,则不需要两个嵌套循环。请参阅我的更新答案。