Это проект для школы. Это игра в бинго, и инструкции для части, над которой я работаю, - это заполнить карту Bingo с использованием 2D-массива. Первый столбец (B) должен иметь случайные числа от 1 до 15 без повторения номеров. Вторая (I) колонна должна иметь рандомы от 16 до 30, третий (N) от 31 до 45 и так далее. У меня он настроен для заполнения и отображения карт, но я получаю повторы. Я не могу понять, как проверить случайное число против каждой строки в конкретном столбце, чтобы узнать, было ли оно уже использовано, и изменить это число по мере необходимости. Я понимаю, что мне нужно делать логически, но я не знаю, как его кодировать. В разделе B, где я пытался начать работу. Я пробовал много вещей, но безуспешно. Вот мой код, пожалуйста, помогите:Заполните столбцы 2D-массива уникальными случайными числами Java
import java.util.Random;
public class BingoCard
{
Random randNum = new Random();
int[][] numberCard = new int[5][5];
boolean[][] shadowCard = new boolean[5][5];
/** Constructor */
// set up 2D arrays for bingo cards, and card comparison
public BingoCard()
{
// create number card
// fill B column with random numbers from 1 to 15
for(int i = 0; i < numberCard.length; i++)
{
this.numberCard[i][0] = randInt(1, 15);
// check for double numbers and recall a random
while(this.numberCard[i][0] != numberCard[i][0])
{
i++;
}
if(this.numberCard[i][0] == numberCard[i][0])
{
numberCard[i][0] = randInt(1, 15);
}
}
// fill I column with random numbers from 16 to 30
for(int j = 0; j < numberCard.length; j++)
{
numberCard[j][1] = randInt(16, 30);
// check for double numbers and recall a random
}
// fill N column with random numbers from 31 to 45
for(int k = 0; k < numberCard.length; k++)
{
numberCard[k][2] = randInt(31, 45);
numberCard[2][2] = 0; // free space
// check for double numbers and recall a random
}
// fill G column with random numbers from 46 to 60
for(int m = 0; m < numberCard.length; m++)
{
numberCard[m][3] = randInt(46, 60);
// check for double numbers and recall a random
}
// fill O column with random numbers from 61 to 75
for(int n = 0; n < numberCard.length; n++)
{
numberCard[n][4] = randInt(61, 75);
// check for double numbers and recall a random
}
// create shadow card to compare to main card
for(int i = 0; i < shadowCard.length; i++)
{
for(int j = 0; j < 5; j++)
{
shadowCard[i][j] = false;
shadowCard[2][2] = true;
}
}
}
/** Methods */
// method to generate a random number in intervals
private int randInt(int min, int max)
{
int random;
random = randNum.nextInt(max - min) + min;
return random;
}
// method to print the numberCard
public String printNumCard()
{
String string = "";
for(int row = 0; row < numberCard.length; row++)
{
for(int col = 0; col < numberCard[row].length; col++)
{
System.out.print(numberCard[row][col] + " ");
}
System.out.println();
}
return string;
}
/** main method for testing */
public static void main(String[] args)
{
BingoCard bc = new BingoCard();
bc.printNumCard();
}
}