Как автоматически заполнить массив в Java. С конкретным номером каждого персонажа - PullRequest
1 голос
/ 15 октября 2019

Я хотел бы заполнить этот массив автоматически определенным числом каждого символа.

Например, 30 индексов с @, 20 индексов с %. «пустые» массивы будут ..

public class Main {

    public static void main(String[] args) {
        char grid[][] = new char[20][40];
        Scanner move = new Scanner(System.in);
        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++) {
                grid [i][j] = '.';
                System.out.print(grid[i][j]);
            }
            System.out.println();
        }
    }
}

1 Ответ

0 голосов
/ 15 октября 2019

Полагаю, вы хотите распределить символы случайным образом по всему массиву. Я продолжу предполагать, что значения 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();
    }
}
...