所以ia玩家在2D陣列上,當我做一個動作時,我希望玩家移動到他周圍的8個可用塊之一,下面的代碼隨機移動他,但是做了兩次隨機移動到一個二維數組中的新實例
地圖移動
GrassGrassGrassGrass
草REK GrassGrass
GrassGrassGrassGrass
重啓前assGrassGrassGrass
隨機運動
0 0 //這不應該發生
地圖移動
GrassGrassGrassGrass
GrassGrassGrassGrass
GrassGrassGr後assGrass
GrassGrassGrass REK
import java.util.Random;
public class command_Movment implements command_Move {
inSwamp map = new inSwamp();
inSwamp rek = new Rek();
Random random = new Random();
int row = random.nextInt(3);
int col = random.nextInt(3);
@Override
public Command move() {
for (int i = 0; i < map.grid.length; i++) {
for (int j = 0; j < map.grid[i].length; j++) {
if (map.grid[i][j] == rek.getName()) {
try {
map.grid[i][j] = "Grass";
if (row == 0) {
i++;
}
if (row == 1) {
i--;
}
if (col == 0) {
j++;
}
if (col == 1) {
j--;
}
map.grid[i][j] = rek.getName();
System.out.println(col + " " + row);
break;
} catch (ArrayIndexOutOfBoundsException exception) {
if (row == 0) {
i--;
}
if (row == 1) {
i++;
}
if (col == 0) {
j--;
}
if (col == 1) {
j++;
}
map.grid[i][j] = rek.getName();
System.out.println("Error");
break;
}
}
}
}
return null;
} }
謝謝,我已經將它們更改爲.equals,並且代碼不在網格中的任何位置,只有rek周圍的8個可用塊。 – Help
@MichaelAlexanderDelaney更新了代碼,這應該符合你的要求。 – Bon