int randRow = rand.nextInt(rows-4);
int randColumn = rand.nextInt(columns); 

Здесь я проверяю, не мешает ли мой новый корабль моему первому. Весь массив заполнен объектами, содержащими символ '.' char, за исключением случая, когда первый корабль

if(field[randRow][randColumn].value == '.' &&
    field[randRow][randColumn+1].value == '.' &&
    field[randRow][randColumn+2].value == '.' &&
    field[randRow][randColumn+3].value == '.'){
        field[randRow][randColumn] = new Square('b');
        field[randRow+1][randColumn] = new Square('b');
        field[randRow+2][randColumn] = new Square('b');
        field[randRow+3][randColumn] = new Square('b');

} else{

Если мой новый корабль не подходит, я хочу повторить попытку с другими случайными значениями, но не знаю как.

dandeman

Ответы (1)

В основном вы не знаете, как снова сгенерировать случайное число. Просто используйте что-то вроде ниже

while(true) {
     //generate random number here
     if (can place battleship) {
          place battleship
          break //placed battleship so no need to retry. stop retrying
     }
     //else we will loop till we can place the battleship
}

2022 WebDevInsider