잘 작동하는 퀴즈 게임을 만들고 있는데 문제가 발생하면 사용자가 정답을 선택할 때마다 오답이라고 표시됩니다. , 한편 정답입니다, 정답이 올바른 위치에 있지 않습니다.정답의 위치에 정확한 대답을 표시하려면 어떻게해야합니까?
여기까지 내 코드입니다, 어떤 아이디어가이 문제를 해결할 수 있습니다.
public class RiddleGuessActivity extends AppCompatActivity {
TextView riddleQuestionTextView;
Button btn1, btn2, btn3, btn4, btnContinue, btnOk;
ArrayList<String> riddles = new ArrayList<>();
ArrayList<String> answers = new ArrayList<>();
int locationOfCorrectAnswers = 0,incorrectAnswers = 0;
ArrayList<String> options = new ArrayList<>();
LinearLayout gameOverLayout;
LinearLayout buttonLayout;
RelativeLayout resultLayout;
TextView timerTextView;
TextView answerTextView;
TextView levelTextView, scoreTextView;
TextView gameOverTextView;
int levelCounter = 1, scoreCounter, riddleCounter = 0;
public void chosenRiddle (View view) {
if (view.getTag().toString().equals(Integer.toString(locationOfCorrectAnswers))) {
//Toast.makeText(RiddleGuessActivity.this, "Correct", Toast.LENGTH_SHORT).show();
levelCounter++;
scoreCounter+=60;
riddleCounter++;
levelTextView.setText(String.valueOf(levelCounter));
scoreTextView.setText(String.valueOf(scoreCounter));
result();
}else {
Toast.makeText(RiddleGuessActivity.this, "Wrong, It was " +
answers.get(riddleCounter), Toast.LENGTH_SHORT).show();
gameOver();
}
}
public void generateRiddles() {
riddles.add("I kiss my mother before i die. What am i ?");
riddles.add("It is greater than God and more evil than the devil. The poor have it, the rich need it and if you eat it you'll die. What am i ?");
riddles.add("It walks on four legs in the morning, two legs at noon and three legs in the evening. What am i ?");
riddles.add("I am the beginning of the end, and the end of time and space. I am essential to creation and i surround everyplace. What am i ?");
riddles.add("What always runs but never walks, often murmurs, never talks, has a bed but never sleeps, has a mouth but never eats. What am i ?");
riddles.add("At night they come without being fetched, By day they are lost without being stolen. What am i ?");
riddles.add("The one who makes it, sells it. The one who buys it, never uses it. The one that uses it never knows that he's using it. What am i ?");
riddles.add("The more you have of it, the less you see. What am i ?");
riddles.add("I am always hungry, i must be fed, the finger i touch will soon turn red. What am i ?");
riddles.add("If you break me, i do not stop working, if you touch me, i may snared, if you lose me, nothing will matter. What am i ?");
answers.add("Matches");
answers.add("Nothing");
answers.add("Man");
answers.add("Letter E");
answers.add("River");
answers.add("The Stars");
answers.add("A Coffin");
answers.add("Darkness");
answers.add("Fire");
answers.add("Heart");
answers.add("The Moon");
answers.add("Food");
answers.add("Love");
answers.add("Mouth");
answers.add("Money");
Random random = new Random();
riddleQuestionTextView.setText(riddles.get(riddleCounter));
locationOfCorrectAnswers = random.nextInt(4);
options.clear();
for (int i = 0; i < 4; i++) {
if (i == locationOfCorrectAnswers &&
!options.contains(answers.get(riddleCounter))) {
options.add(answers.get(riddleCounter));
}else {
incorrectAnswers = random.nextInt(answers.size());
while (incorrectAnswers == riddleCounter) {
incorrectAnswers = random.nextInt(answers.size());
}
if(!options.contains(answers.get(incorrectAnswers)))
options.add(answers.get(incorrectAnswers));
else --i;
}
}
btn1.setText(options.get(0));
btn2.setText(options.get(1));
btn3.setText(options.get(2));
btn4.setText(options.get(3));
}
이 코드를 줄이면 [mcve]를 표시하고 카운터 및 위치 변수를 사용하여 수행하려는 작업의 논리를 설명 할 수 있다면 좋을 것입니다. –
네,하지만 완전하지 않거나 검증 할 수는 없습니다. –