在二维数组中查找列中的重复数字



我正在用数字制作一个数字宾果游戏板,我希望所有的数字都是唯一的。因此,我试图创建一种算法,该算法将在列中循环,找到重复的数字,然后用两个特定数字之间的随机数替换它们。

这就是我目前所拥有的:

public void bingoBoardGenrerator(int[][] bingoBoard) {
for (int row = 0; row < bingoBoard.length; row++) {
int random = (int) (Math.random() * 15) + 1;
bingoBoard[row][0] = random;
for (int j = 1; j < bingoBoard.length; j++) {
if (bingoBoard[j][0] == random) {
bingoBoard[row][0] = (int) (Math.random() * 15) + 1;
}
}

输出应该是这样的,但列中没有重复的数字:

Free space = 0
B   I   N   G   O   
5   25  36  53  61  
9   19  36  60  62  
1   17  0   54  63  
6   20  37  57  71  
5   19  39  57  69  

任何帮助都将不胜感激!

对于"B";列:

  1. 使用整数1-15创建一个ArrayList
  2. 然后使用Collections.sort()对数字进行随机化
  3. 然后从ArrayList中取出前5个数字,并将它们添加到您的Array

对I、N、G、O列重复上述步骤,每个列使用适当的数字范围。

或者另一种方法(对于B(是:

  1. 创建集合
  2. 生成1-15范围内的随机数
  3. 将数字添加到集合
  4. 如果集合包含5个数字,则完成。如果没有,请重复步骤2-4

对其他列重复上述步骤。

最新更新