2d数组中的Java移动字符和异常



我有这个2d数组:

public int[][] intmap =
{
{0, 0, 0, 0, 0},
{0, 1, 2, 0, 0},
{0, 0, 2, 0, 0},
{0, 3, 0, 0, 0},
{0, 0, 0, 3, 3}
};

如何在不踩数字2或3的情况下移动数组中的数字1如果下一步是其中之一,我想打印出一条警告消息。我试着使用一个例外,因为我不想走出地图这是一个方向的示例(来自我的代码(:

public void goRight() {
try {
if (intmap[i][j + 1] != 2 && intmap[i][j + 1] != 3) {
intmap[i][j] = previousNumber;
previousNumber = intmap[i][j + 1];
intmap[i][j] = 1;
} else {
System.out.println("You can not move here!");
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("You can not move outside the the map!");
}
}

我一开始尝试使用++j,但没有if(),效果很好。它不让我走出地图,但我想解决";数字2和3";问题所以我做了一个if(){}else{},但效果不太好。我的朋友告诉我应该使用j+1而不是++j,但在这种情况下字符不会移动。previousNumber是一个int,其中我存储数字1所在的位置。默认情况下,我给出int previousNumber = 0。我可以调用direction方法并打印出数组。

我在if语句中使用了++j而不是j+1

public void goRight() {
try {
if (intmap[i][j + 1] != 2 && intmap[i][j + 1] != 3) {
intmap[i][j] = previousNumber;
previousNumber = intmap[i][++j];
intmap[i][j] = 1;
} else {
System.out.println("You can not move here!");
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("You can not move outside the the map!");
}
}

相关内容

  • 没有找到相关文章

最新更新