Ich baue ein Spiel, das eine Frage mit 4 Multiple-Choice-Antworten (in android Studio) hat. Ich werde drei falsche Antworten und eine korrekte Antwort für alle 45 Fragen in meiner App generieren. Ich habe eine separate Methode, die die Frage zufällig generiert (45 verschiedene Fragen). Ich bin mir nicht sicher, wie ich das machen soll.Wie erstelle ich zufällige Strings für ein Multiple-Choice-Spiel
public class MainActivity extends AppCompatActivity {
Button startGame;
TextView questionTextView;
questions question = new questions();
ArrayList<String> answers; //gets the correct
int correctAnswer;
public void START (View view) {
startGame.setVisibility(View.INVISIBLE);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random rand = new Random();
startGame = (Button) findViewById(R.id.startButton);
questionTextView = (TextView) findViewById(R.id.questionTextview);
questionTextView.setText(question.getQuestion());
correctAnswer = rand.nextInt(4);
for(int i = 0; i < 4; i++) {
if(i == correctAnswer) {
} else {
}
}
}
}
public class questions {
public String [] mquestions = {
"Who is the 1st president of the United States?",
"Who is the 2nd president of the United States?",
"Who is the 3rd president of the United States?",
"Who is the 4th president of the United States?",
"Who is the 5th president of the United States?",
"Who is the 6th president of the United States?",
"Who is the 7th president of the United States?",
"Who is the 8th president of the United States?",
"Who is the 9th president of the United States?",
"Who is the 10th president of the United States?",
"Who is the 11th president of the United States?",
"Who is the 12th president of the United States?",
"Who is the 13th president of the United States?",
"Who is the 14th president of the United States?",
"Who is the 15th president of the United States?",
"Who is the 16th president of the United States?",
"Who is the 17th president of the United States?",
"Who is the 18th president of the United States?",
"Who is the 19th president of the United States?",
"Who is the 20th president of the United States?",
"Who is the 21st president of the United States?",
"Who is the 22nd president of the United States?",
"Who is the 23rd president of the United States?",
"Who is the 24th president of the United States?",
"Who is the 25th president of the United States?",
"Who is the 26th president of the United States?",
"Who is the 27th president of the United States?",
"Who is the 28th president of the United States?",
"Who is the 29th president of the United States?",
"Who is the 30th president of the United States?",
"Who is the 31st president of the United States?",
"Who is the 32nd president of the United States?",
"Who is the 33rd president of the United States?",
"Who is the 34th president of the United States?",
"Who is the 35th president of the United States?",
"Who is the 36th president of the United States?",
"Who is the 37th president of the United States?",
"Who is the 38th president of the United States?",
"Who is the 39th president of the United States?",
"Who is the 40th president of the United States?",
"Who is the 41st president of the United States?",
"Who is the 42nd president of the United States?",
"Who is the 43rd president of the United States?",
"Who is the 44th president of the United States?",
"Who is the 45th president of the United States?",
};
public String getQuestion() {
String question = "";
Random rand = new Random();
//This randomizes the questions!!
int randomNumber = rand.nextInt(mquestions.length);
question = mquestions[randomNumber];
return question;
}
}
Da die möglichen Antworten glaubwürdig sein müssen. Sie können nicht wirklich eine zufällige Zeichenfolge haben. Der beste Ansatz wäre wahrscheinlich, einige zufällige Wörter/Namen aus einer Wortbank auszuwählen. Es ist die gleiche Idee, wie Sie Ihre Frage auswählen. – litelite
Willst du zufällig-zufällig (zB George Taft) oder willst du eine Namensbank mit einem gültigen (wer ist 44.: Obama, Trump, Bush, Clinton) verwenden? – Robert
Verwenden Sie eine Datenbank. Verknüpfen Sie die Fragen und Antworten mit einer ID und markieren Sie die richtige mit einer ganzen Zahl. Die falschen können eine variable Zahl sein, um die Dinge ein wenig zu verwirren. Verwenden Sie '... ORDER BY RANDOM', um die Antworten unsortiert auszuwählen. –