поэтому игрок ia на 2-мерном массиве, когда я делаю действие, я хочу, чтобы игрок переместился на один из 8 доступных блоков вокруг него, приведенный ниже код перемещает его случайным образом, но делает это дваждыперемещается в новый экземпляр в 2-мерном массиве случайным образом
Карта Перед Moving
GrassGrassGrassGrass
Grass Rek GrassGrass
GrassGrassGrassGrass
Gr 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 сейчас, и код не был нигде в сетке, только 8 доступных блоков вокруг rek. – Help
@MichaelAlexanderDelaney обновил код, это должно соответствовать вашим требованиям. – Bon