随机类实例

时间:2011-04-29 21:22:57

标签: android

我的计划是一个测验,询问美国各州的问题 我创建一个类的三个实例说State

State st1 = new State();
State st2 = new State();
State st3 = new State();

喜欢它询问一个关于st1.name的资本是什么的问题 并在下面的行中给出了3个选项

String Builder sb;
sb.append("What is Capital of "+st1.name+"\n");
sb.append("\n"+st1.capital);
sb.append("\n"+st2.capital);
sb.append("\n"+st3.capital);
mainText.setText(sb.toString);

现在问题是每次在第一行找到正确的答案...... 我该如何避免呢?

2 个答案:

答案 0 :(得分:0)

使用Java的Random

将正确答案放在随机位置

Random.nextInt(3)将为您提供0到2之间的随机数。将您的正确答案放入位置大小为3的数组中,并将其中两个错误的答案放在其余位置。然后遍历该数组并sb.append(array[i]);(i介于0和2之间)以获得状态大写的随机排序。

答案 1 :(得分:0)

创建一个ArrayList,随机拉出对象。

此代码完全未经测试,但我认为这距离太远......

这将(理论上)以完全随机的顺序列出答案。

ArrayList<State> states = new ArrayList<State>();
Random rand;
states.add(new State());
states.add(new State());
states.add(new State());

sb.append("What is Capital of "+states.get(0).name+"\n");
int randomNum = 0;
while (states.size() > 0) {
    randomNum = rand.nextInt(1 - states.size() + 1);   
    sb.append("\n"+states.get(randomNum).capital);
    states.remove(randomNum)
}

mainText.setText(sb.toString);