1

我正在学习如何做一个简单的问答游戏。在游戏中,点击后会生成一个随机数,使一个新问题出现(有一个开关,每个案例与一个不同的问题相关联)。每个问题只有一个正确答案,并且在单击任何按钮后会显示下一个问题(无论该人是否单击了正确的按钮)。但我也试图让按钮以随机方式出现......我试过这个:

    final Random rng = new Random();
    final List<Integer> generated = new ArrayList<Integer>();

        while(true){

            if(generated.size()!=3) {

                Integer nxt = rng.nextInt(3) + 1;

                if (!generated.contains(nxt))
                {
                    generated.add(nxt);

                    textView1 = (TextView) findViewById(R.id.textView1);
                    switch (nxt) {
                    case 1: 
                        textView1.setText("Question 1");

                        btn1.setText("Right answer");
                        btn2.setText("Wrong 1");
                        btn3.setText("Wrong 2");
                        btn4.setText("Wrong 3");


                        break;
                    case 2: 
                        textView1.setText("Question 2");

                        btn1.setText("Right answer");
                        btn2.setText("Wrong 1");
                        btn3.setText("Wrong 2");
                        btn4.setText("Wrong 3");

                        break;
                    case 3: 
                        textView1.setText("Question 3");

                        btn1.setText("Right answer");
                        btn2.setText("Wrong 1");
                        btn3.setText("Wrong 2");
                        btn4.setText("Wrong 3");

                        break;
                }

                break;
            }
        }

    }

我将此代码放在 onCreate 中(当用户输入此活动问题时已经出现问题)和按钮 1 的 onClick 中(单击按钮时出现另一个问题。)所有 4 个答案的顺序(4 个按钮) 应该是随机的。做这样的事情的最好方法是什么?

4

2 回答 2

1

您可能想要创建一个包含问题、答案和任何其他所需数据的“QuestionInfo”类。然后,您可以创建“QuestionInfo”对象的集合(数组或列表),这将使选择随机问题和填充 UI 变得非常容易。不需要巨大的 switch 语句。

于 2013-03-04T03:56:38.290 回答
-1

创建一个数组将有助于随机化您的问题。

于 2013-07-09T04:20:25.163 回答