Полагаю, вы хотите распределить символы случайным образом по всему массиву. Я продолжу предполагать, что значения 30 и 20 являются ориентировочными, а не абсолютными. Поскольку у вас есть массив 20x40, который может хранить 800 символов, и из этого должно быть около 750 точек, а остальные 50 других символов, тогда распределение будет составлять 93,75% '.'
, 2,5% '%'
и 3,75% '@'
. Использование java.util.random
что-то вроде этого может быть отправной точкой:
import java.util.Random;
....
public static void main(String[] args) {
char grid[][] = new char[20][40];
Scanner move = new Scanner(System.in);
Random rand = new Random();
System.out.println("Let's start playing:");
System.out.println("---------------------------------------------------------------");
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[i].length; j++) {
double r = rand.nextDouble();
grid [i][j] = r < 0.025 ? '%' : r < 0.0625 ? '@' : '.';
System.out.print(grid[i][j]);
}
System.out.println();
}
}