Цель состоит в том, чтобы свести к минимуму количество выстрелов, которые я беру на борту линкора, который генерируется случайным образом. Мой метод fireShot() должен определить, была ли точка в моем 2D-массиве уже снята, промах или попадание.Battleship Shot Firing [Java]
public boolean fireShot()
{
Random rand = new Random();
int i = rand.nextInt(10); //generate 2 random numbers for rows and columns
int j = rand.nextInt(10);
Point shot = new Point(i,j);
while (mapState[i][j] != empty){
j = rand.nextInt(10);
i = rand.nextInt(10);
mapState[i][j] = shotAt;
}
boolean hit = battleShip.shoot(shot);
if(hit == false){
mapState[i][j] = miss;
}
else if(hit == true){
mapState[i][j] = hitInt;
huntMode(i,j);
}
return false;
}
Метод battleShip.shoot возвращает логическое значение, если точка попадает на лодку.
Проблема в том, что эффективность одинакова и не пропускает элементы, которые уже были пропущены или удалены.
что ваша проблема? –
@WasiAhmad это не меняет эффективность вообще. Программа должна пропустить все элементы, которые уже были удалены или пропущены, но, похоже, это не так. –
Вы хотите генерировать случайное число, которое не генерируется раньше? что вы имели в виду по эффективности? почему программа должна пропускать все элементы, которые уже были удалены или пропущены? вы все еще не поняли! –