所以我需要制作一个可以制作彩票游戏的程序。
我的代码支持4款游戏,6-42,MegaLotto(6-45),SuperLotto(6-49)和GrandLotto(6-55) 它会询问要玩哪种游戏,输入1到6-42等等。
游戏中有10个玩家,每个游戏中都有非重复的随机数。 (例如球员1:1,2,3,4,5,6球员2:2,3,4,5,6,7等等。)
有胜利的组合 (例如,获胜组合:1,2,3,4,5,6)
如何生成新号码代替重复号码? (例如,1,1,2,3,4,5重复的数字将产生一个新的,因此有7,1,2,3,4,5)
我的源代码:
public static void main(String args[])
{
int c1[]= new int[10];
int a1[]= new int[6];
int a2[]= new int[6];
int a3[]= new int[6];
int a4[]= new int[6];
int a5[]= new int[6];
int a6[]= new int[6];
int a7[]= new int[6];
int a8[]= new int[6];
int a9[]= new int[6];
int a10[]= new int[6];
int aMaster[]= new int[6];
int a=0,b=0,c=0,d=0;
int x,x1,x2,x3,x4;
String help="";
String holp="";
char went='A';
JDialog.setDefaultLookAndFeelDecorated(true);
int numbers[]= new int[6];
b= Integer.parseInt(JOptionPane.showInputDialog(null,"Type [1] for 6-42\nType [2] for Mega\nType [3] for Super\nType [4] for Grand\nType [5] Go away and never come back!","Play!!!", JOptionPane.WARNING_MESSAGE));
while(b!=5)
{
switch(b)
{
case 1:
holp ="6-42 Lotto:\n";
for(x=0; x<a.length; x++)
{
a1[x]= AllGen(1,42);
}
break;
}
}
}
AllGen是一个数字生成器方法,说(1,42)将生成1到42之间的随机数。
答案 0 :(得分:2)
您可以使用SET。这是一个不允许重复数字的集合。您可以继续添加数字,直到列表是您需要的长度。这样,每次重复一个数字时,你的循环都会再加一次。例如,如果您需要6个中奖号码在0到50之间,您可以使用以下内容:
Set winningNums = new TreeSet();
Random rand = new Random();
while (winningNums.size() < 6) {
winningNums.add(rand.nextInt(51));
}
System.out.println(winningNums.toString());
您需要将其集成到您的程序中,但这会向您展示如何生成没有重复的数字列表。我使用了TreeSet
命令列表,但是如果你不需要,可以使用其他的。
示例输出
[9, 10, 12, 24, 31, 37]
[1, 10, 11, 19, 43, 45]
[6, 20, 21, 33, 40, 48]
如果0不是允许的数字,则可以在每次迭代时向随机生成的int添加1。