Условие по задаче: нужно заполнить массив, чтоб в каждой строке было по 10 единиц (остальные нули).
У меня получилось, что все единицы, так ещё и массив зубчатый.
Ломаю голову. Помогите.
import java.util.Arrays;
public class Main
{
public static String robotank = "☖";
public static String empty = "-";
public static String hit = "🎯";
public static int height = 10;
public static int width = 20;
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 < bombs.length; i++) {
Arrays.fill(bombs[i],0);
int bombCount = 10;
while (bombCount > 0) {
int j = (int) (Math.random() *bombs[i].length);
if (bombs[i][j] == 0) {
bombs[i][j] = 1;
bombCount--;
}
System.out.print (bombs[i][j]);
}
System.out.println();
}
}
}
Заранее благодарна за помощь.
Elena
2 уровень
Помогите пожалуйста.
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Mr. Niki
27 сентября 2022, 18:36
Здравствуй Елена.
Попробуй представить что ты печатаешь на печатной машинке на листе 10х20, заполняется этот листок построчно. Напрашивается вывод в таком случаи что для этого нужно использовать ширину самого листка (Длина массива) . Вот подсказка: Умножай не на длину массива бомб а на ширину всего поля 🙂
0
Михаил
27 сентября 2022, 17:33решение
ты вывод на экран неправильно делаешь.
Это то что ты выводишь:
А вот это то что находится при этом в матрице
для этого в конец для проверки я подкинул:
+2
Elena
28 сентября 2022, 07:17
Спасибо большое за подсказку. Только я всё равно не поняла, почему именно в моем варианте выводится такая абра-кадабра. Как массив получается зубчатый, если изначально задается одинаковая длина каждой строки и почему везде 1.
0
Михаил
28 сентября 2022, 17:21
Всё проще чем кажется. У тебя в коде рандом. Вот что мне этот рандом показал:
Несколько раз подряд попадаются одни и те же цифры для j Но if не обрабатывается, но циферка печатается, а цикл не заканчивается пока 10 ифов не сработает.
Очень часто рандом в компьютере это очень предсказуемое число, именно поэтому сильно доверять ему нельзя.
0