0

我在 Android 中为我的班级制作了一个相当可靠的测验游戏,其中从数组中挑选了 10 个随机问题。它现在的工作方式是用户在 EditText 字段中输入答案。我也很高兴我能够弄清楚如何使用简单的随机播放算法不得到重复的问题,因此向用户提出的每个问题都是独一无二的(我实际上为此感到非常自豪)。

理想情况下,我想让游戏成为多项选择,但我没时间了,我按上述方式提交了它。但我一直在考虑如何让游戏变得更好和用户友好,我认为 EditText 选择不是理想的 IMO。所以我一直在考虑这样重写它:

  1. 随机选择一个问题;
  2. 该问题将显示 4 个随机答案选项,其中一个是正确答案;
  3. 我将使用 RadioButtons 和 RadioGroup 来选择答案;
  4. 棘手的部分:我希望随机显示和排序答案选项,例如:
    • 问题 x 被选中,答案选项将按随机顺序 a、b、c、rightAnswer 显示;
    • 然后问题 y 被选中,答案选择将是 b, rightAnswer, c, a
    • ETC...

所以我想知道是否有人可以为我指出如何实现这一目标的正确方向。我不是在要求完整的代码,只是在我可以阅读更多信息并帮助我弄清楚的地方。我似乎在 SO 中找到的只是获取随机问题的方法。

提前致谢!

4

2 回答 2

1

创建一个数组来保存你的答案。然后从 0-[array.length] 中选择一个随机数,并将数组中的索引设置为正确答案。IE:

int[] answers = new int[4];
answers[0] = getRandomAnswer();
answers[1] = getRandomAnswer();
answers[2] = getRandomAnswer();
answers[3] = getRandomAnswer();

int correctIndex = Random.nextInt(0,4); // Maybe off by 1? I didn't compile
answers[correctIndex] = correctAnswer;

现在你有一个包含 3 个随机答案和 1 个正确答案的数组。您需要确保 getRandomAnswer() 方法不会向您返回正确答案,或者此时检查您的数组是否有多个正确答案实例,如果它们存在,则删除除一个之外的所有实例。

您可以使用数组中的答案填充 RadioGroup,当用户选择组中的一个单选按钮时,您可以通过检查正确索引变量来了解用户是否正确。

于 2012-05-04T16:28:27.377 回答
1

可能有更有效或更优雅的方法来专门设置 4 个随机位置,这是我的建议:

    int setPlace[4] = {0,0,0,0};

    setPlace[0] = Random.nextInt(3) + 1;

    for (loop = 1; loop<=3; Loop++)
 {
    do 
    {
    fix1 = Random.nextInt(3) + 1;
    if ((fix1!=setPlace[0])&&(fix1!=setPlace[1])&&(fix1!=setPlace[2])(fix1!=setPlace[3]))
    {
    setPlace[loop]=fix1;
    fix1=0;
    }
    }
    while{fix1!=0} 
}
于 2012-05-04T17:08:07.513 回答