大家好,我是Android开发和java编程的新手。我希望有一个人可以帮助我。我正在开发一款应用程序,它是一款图像猜谜游戏。我有100张图片存储在我的drawable中。
我目前有这个代码会随机生成一个图像,它将显示在图像视图中:
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个级别组成。
答案 0 :(得分:0)
也许创建那些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);
这就是全部!
答案 1 :(得分:0)
如果您使用Random class,则有可能重复。
因此将它们存储到ArrayList中。因此,您可以使用Collections.shuffle(list);
它将随机播放ArrayList中的项目。所以,重复没有头疼。