В идее и при запуске без проверки код работает. Задача будто решена. Валидацию никак не пройду(((
Смущает фраза "Обрати внимание, что делать "бомбардировку" с тем же расположением бомб бессмысленно".
package com.javarush.task.pro.task05.task0529;
import java.util.Arrays;
/*
Галаксианские роботанки (1)
*/
public class Solution {
public static String robotank = "☖";
public static String empty = "_";
public static String hit = "🎯";
public static int width = 30;
public static int height = 10;
public static String[][] field = new String[height][width];
public static int[][] bombs = new int[height][width];
public static void main(String[] args) {
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
field[j][i] = empty;
}
}
for (int j = 0; j < height; j++) {
int x = (int) (Math.random() * width);
field[j][x] = robotank;
}
int tankCount = 10;
while (tankCount > 0) {
for (int row = 0; row < height; row++) {
int bombCount = 0;
int maxBombCoutt = 10; {
if (tankCount< 10) {
maxBombCoutt = 1;
}
}
while (bombCount < maxBombCoutt) {
int column = (int) (Math.random() * width);
if (bombs[row][column] == 0) {
bombs[row][column] = 1;
bombCount++;
}
}
}
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
if (robotank.equals(field[i][j]) && (bombs[i][j] == 1)) {
field[i][j] = hit;
tankCount--;
}
}
}
}
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
System.out.print(field[i][j]);
}
System.out.println("");
}
}
}