Android:检查数组是否为随机数

时间:2015-03-10 14:40:46

标签: android arrays random find

我希望你能帮助我。

我制作了像4Pics1Word这样的游戏。

我想随机加载Level,我想要一个循环,它生成一个从0到10的随机数,然后检查生成的数字是否是第一次加载。 如果是,则将其写入数组并结束循环。 如果该号码不是第一次加载,则生成一个新的随机数并再次检查,直到它不被使用。

例如,这是我的代码(不能正常工作):

Boolean usedImageSet = false;
    for (int t = 0; t <= usedImages.length; t++) {
        if (usedImageSet == false) {
            StringBuilder sb = new StringBuilder();
            sb.append(currentQuestion);
            String used = sb.toString();            

            if (usedImages[t] != null) {
                System.out.println("usedImage" + t
                        + " = not Null, it is" + usedImages[t]);
                if (usedImages[t].equals(used)) {
                    System.out.println("String: "
                            + used
                            + " found it here: [" + t + "]");
                    currentQuestion = (int) (Math.random() * 10);

                }else {
                    System.out.println("String: "
                            + used + " not found");
                }
            }
            if (usedImages[t] == null) {
                usedImages[t] = used;
                System.out.println("useddImage[" + t + "]: "
                        + usedImages[t]);
                System.out.println("usedImage" + t + " is Null, change to"
                        + usedImages[t]);
                usedImageSet = true;
            }
        }

    }

PS: 谢谢大家,我认为Oren的解决方案是最好的

    // naive implementation
ArrayList<Integer> list = new ArrayList();
for(int i=0; i<10; i++)
{
    list.add(i);
}
Collections.shuffle(list);

// output the generated list
for(int i=0; i<10; i++)
{
    System.out.print(list.get(i));
}

但如果我关闭游戏怎么能保存列表呢?

2 个答案:

答案 0 :(得分:2)

创建一个你想要的数字列表然后在该列表上调用Collections.shuffle()可能会好得多。

// naive implementation
ArrayList<Integer> list = new ArrayList();
for(int i=0; i<10; i++)
{
    list.add(i);
}
Collections.shuffle(list);

// output the generated list
for(int i=0; i<10; i++)
{
    System.out.print(list.get(i));
}

答案 1 :(得分:0)

    int oldnumber = 5;
    int newnumber = new Random().nextInt(10);
    while (newnumber == oldnumber){
        newnumber = new Random().nextInt(10);
    }