Android随机活动不重复

时间:2014-03-03 13:06:33

标签: java android android-activity

我正在开发一个问答游戏,我必须在回答问题时进行随机活动,以避免同一顺序的问题。我已使用switch

修复此问题

然而,问题是我可能会回到我已经回答过的问题,因此我现在必须编写一些代码,以避免播放器通过随机生成器转到以前的问题。

到目前为止我已经这样做了;

  Random rand = new Random();
  int number = rand.nextInt(10);
  Intent intent = null;

       switch(number){
       case 0: intent = new Intent(MainActivity.this, Question001.class);
       break;
       case 1: intent = new Intent(MainActivity.this, Question002.class);
       break;

       //etc....
       }
       startActivity(intent);           

这会在按钮点击时带来随机活动,但是我想要禁用以前访问过的问题,这意味着,如果某人已经回答了课程问题002中的问题,他一定不能(永远也不会)再次得到这个问题,如这将导致他从早期问题中获得额外积分。如何仅在按钮点击时随机获取问题,这样它们就不会再出现了?我希望我的问题能得到理解。

每个问题都存储在自己的类中(Question001,Question002 .... Question009)

2 个答案:

答案 0 :(得分:1)

请按照以下步骤操作:

  1. 创建一个ArrayList(或简单的List)并将所有问题添加到其中。请记住,这只包含改组的问题。不要将它用于任何其他目的。
  2. 然后使用Collections.shuffle(问题)进行随机播放。
  3. 在最上面问问题(question.get(0));
  4. 解决此问题后,将其从列表中删除。这将确保它永远不会再次显示。
  5. 重复步骤2 - 5直到列表大小大于零。
  6. 如果不清楚,请告诉我。

答案 1 :(得分:0)

使用

ArrayList<Integer> number = new ArrayList<Integer>();
for (int i = 1; i <= 10; ++i) number.add(i);
Collections.shuffle(number);