Java数组:我如何制作彩票游戏?

时间:2014-01-24 05:13:25

标签: java arrays sorting

所以我需要制作一个可以制作彩票游戏的程序。

我的代码支持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之间的随机数。

1 个答案:

答案 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。