我正在用数字制作一个数字宾果游戏板,我希望所有的数字都是唯一的。因此,我正在尝试创建一个算法,它将遍历列,找到重复的数字,然后将它们替换为两个特定数字之间的随机数字。
这就是我到目前为止所知道的:
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 任何帮助都将不胜感激!
发布于 2021-04-13 10:52:15
对于"B“列:
ArrayList。Collections.sort()随机化数字。ArrayList中提取前5个数字并将它们添加到您的Array中
对I、N、G、O列重复上述步骤,每个列都使用适当的数字范围。
或者另一种方法(对于B)是:
创建一个随机数在1-15之间创建一个随机数,如果集合包含5个数字,则将该数字添加到Set.
对其他列重复上述步骤。
https://stackoverflow.com/questions/67068075
复制相似问题