Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:围绕二维数组移动_Java_Arrays_Events_Direction - Fatal编程技术网

Java:围绕二维数组移动

Java:围绕二维数组移动,java,arrays,events,direction,Java,Arrays,Events,Direction,请注意,我已经看到了很多答案,但我还没有看到在阵列中移动的最简单解决方案 我想继续移动到数组中的下一个或上一个元素(行和列)。这意味着,如果我到达任何行或列的末尾,它会将我带到下一行或上一行,相对于数组的初始大小 假设我有一组按钮来处理方向事件(左、右、上和下) 我有: int twoD[][]= new int[3][3]; 输出 0 1 2 3 4 5 6 7 8 我想马上离开 0,1,2,3,4,5,6,7,8(连续) 我想从左边离开 0,8,7,6,5,4,3

请注意,我已经看到了很多答案,但我还没有看到在阵列中移动的最简单解决方案

我想继续移动到数组中的下一个或上一个元素(行和列)。这意味着,如果我到达任何行或列的末尾,它会将我带到下一行或上一行,相对于数组的初始大小

假设我有一组按钮来处理方向事件(左、右、上和下)

我有:

int twoD[][]= new int[3][3];
输出

0   1   2
3   4   5
6   7   8
我想马上离开

0,1,2,3,4,5,6,7,8(连续)

我想从左边离开

0,8,7,6,5,4,3,2,1(连续)

我想升迁

0,8,5,2,7,4,1,6,3(连续)

我想下楼

0,3,6,1,4,7,2,5,8,0(连续)


您应该拥有外部数组和内部数组的当前索引以及数组的长度

int innerIndex = 0;
int outerIndex = 0;
int innerMax = 3;
int outerMax = 3;
如果按下右键,则必须增加内部索引。如果内部索引达到innerMax,您将增加
outerIndex
,并将
innerIndex
设置为
0
。(最好是私有方法)

减少内部索引(按下左键)

private void increaseInner(){
内部索引--;
如果(内部索引<0){
innerIndex=innerMax;
外部索引--;
如果(OUTIDEX<0)
outerIndex=outerMax;
}
}

按下向上按钮和向下按钮的两种方法的创建方式与这些方法类似。

您的问题不清楚。通常,要遍历二维数组,可以使用嵌套for循环。
private void increaseInner() {
    innerIndex++;
    if (innerIndex == innerMax) {
        innerIndex = 0;
        outerIndex++;
        if (outIndex == outerMax)
            outerIndex = 0;
    }
}
private void increaseInner() {
    innerIndex--;
    if (innerIndex < 0) {
        innerIndex = innerMax;
        outerIndex--;
        if (outIndex < 0)
            outerIndex = outerMax;
    }
}