【问题标题】:Random images with no repetition (image guessing)没有重复的随机图像(图像猜测)
【发布时间】:2014-11-25 11:33:47
【问题描述】:

大家好,我是 android 开发和 java 编程的新手。我希望有一个人可以帮助我。我正在开发一个图像猜谜游戏的应用程序。我的可绘制对象中存储了 100 张图像。

我目前有这段代码会随机生成一张图片,并会显示在图片视图中:

ImageView random_image = (ImageView) findViewById (R.id.random_level);
final int[] images = { R.drawable.img1, R.drawable.img2...R.drawable.img100 };
Random generator = new Random();
random_image.setImageResource(images[generator.nextInt(images.length - 1)]);

我现在的问题是如何避免每个级别的图像重复?我的游戏由 25 个关卡组成。

【问题讨论】:

    标签: android random unique


    【解决方案1】:

    也许创建一个包含这些 Image id 的 ArrayList,每当用户猜到一张图片时,只需从该 ArrayList 中删除该 Image id 位置

    例子:

    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(R.drawable.your_images);  //keep adding that, maybe using a loop would be better to add
    int position = new Random().nextInt(list.size());
    imageViewObject.setImageResource(Integer.intValue(list.get(position)));
    //while starting next level
    list.remove(position);
    

    就是这样!

    【讨论】:

    • 谢谢!它有效,我在这部分收到一条错误消息,但我能够解决它。 imageViewObject.setImageResource((Integer)list.get(position));
    【解决方案2】:

    如果你使用 Random 类,就有重复的机会。

    所以将它们存储到 ArrayList 中。这样你就可以使用Collections.shuffle(list);

    它将随机播放 ArrayList 中的项目。所以,不要因为重复而头疼。

    【讨论】:

      猜你喜欢
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 2013-02-15
      • 2020-09-25
      • 2017-11-12
      • 2016-01-16
      相关资源
      最近更新 更多