이것은 학교 프로젝트입니다. 그것은 빙고 게임이고, 제가하고있는 부분에 대한 지시 사항은 2D 배열을 사용하여 빙고 카드를 채우는 것입니다. 첫 번째 (B) 열은 1에서 15 사이의 임의의 숫자가 있어야하며 반복되는 숫자는 없습니다. 두 번째 (I) 열은 16-30 사이의 랜덤 (randoms), 31-45 사이의 세 번째 (N) 등이 있어야합니다. 카드를 채우고 표시하도록 설정했는데 반복이 나타납니다. 특정 열의 각 행에 대해 난수를 확인하여 이미 사용되었는지 확인하고 필요에 따라 해당 수를 변경하는 방법을 알아낼 수 없습니다. 나는 논리적으로해야 할 일을 이해하지만, 어떻게 코딩해야할지 모른다. 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();
}
}