Member 14873171 Ответов: 1

Кнопку "Отправить", если/еще викторина и мини-игра не работает (в NetBeans)


мы кодируем тест на netbeans в основном то, что делает кнопка submit, когда вы нажимаете на нее, она должна искать совпадение ответа, выбранного вами из строки correctAns, и добавляет точку, если он правильный, если нет, то отображает "неправильный ответ" на jlabel и переходит к следующему вопросу, но это не так..что не так с кодом?
картины! приношу свои извинения, поскольку у меня очень ограниченные знания о java.

addedScore определяется из

int randNumbersSet[] = new int[15];
    int questionNo = 0, legitQuestionNo = 0, newScore = 0, oldScore = 0, addedScore = 0;
    String answer = "";


oldScore происходит от метода под названием scoreCounter
public int scoreCounter(int oldScore){
    return(oldScore + addedScore);
}


таким образом, если вы наберете +1, addedScore будет добавлен к oldScore



private void SubmitActionPerformed(java.awt.event.ActionEvent evt) {                                       
    if(answer.equals(correctAnsSet[randNumbersSet[questionNo]])){
        addedScore = 1;
    
    }
    else{
        addedScore = 0;
        quizQuezo.setText("Sorry, wrong answer.");
    }
    
    oldScore = Integer.parseInt(Score.getText());
    newScore = scoreCounter(oldScore);
    
    if(questionNo == randNumbersSet.length - 1){
        quizQuezo.setText("Game Over!");
        
        this.setVisible(false);
        QuizEnd h1 = new QuizEnd(newScore);
        h1.setVisible(true);
    }
    else{
        questionNo++;
        testSetter();
    }
}


Что я уже пробовал:

ну, я ничего не пробовал, кроме как определить проблему. как я уже говорил, Я недостаточно хорошо осведомлен, чтобы решить эту проблему, но мне это нужно, так как это необходимо для школьного требования.

Richard MacCutchan

Что должно делать следующее утверждение?

if(answer.equals(correctAnsSet[randNumbersSet[questionNo]])){

Member 14873171

если ответ совпадает с любым из правильных ответов из строки correctAnsSet, он добавит +1 балл. randNumberSet-это рандомизатор вопросов.

Richard MacCutchan

Итак, что же на самом деле происходит, когда вы нажимаете кнопку? Помните, что мы не можем видеть код, который проверяет ответ или различные строки, которые составляют вопросы и ответы.

[редактировать]
Фактический тест будет сравниваться только с одним элементом. Так что если значение, возвращаемое из correctAnsSet[randNumbersSet[questionNo]] это не тот правильный вариант, который он больше не будет утруждать себя тестированием. Вам нужно пройти через все ответы, чтобы найти совпадение.

Member 14873171

когда вы нажимаете кнопку, она должна добавить +1 к addedScore, когда вы выбираете правильный ответ, если нет, то оценка не добавляется, и она будет переходить к следующему вопросу. из того, что я понимаю, это сама кнопка отправки, которая проверяет ответы из строк и определяет, правильно это или нет, через if/else, так как я не вижу никакого отдельного кода для проверки правильности или неправильности ответов ;-;

Richard MacCutchan

- из того, что я понимаю"
Ну, если вы не понимаете свой собственный код, я не знаю, как вы ожидаете, что кто-то еще это сделает. Как я уже упоминал, мы не можем видеть, что находится внутри. answer, correctAnsSet, randNumbersSet или questionNo поэтому мы не можем сказать , правильно это или нет. Кроме того, ваш код не добавляет 1 к addedScore, он просто устанавливает его в 1 или 0.

Richard MacCutchan

Вы все еще не предоставили ни одного из предложенных мною значений или не объяснили, какие значения вы видите, когда нажимаете кнопку.

1 Ответов

Рейтинг:
2

Patrice T

Цитата:
что не так с кодом?

Ваши наборы кодов addedScore соответственно отвечать правильно или нет, но вы ничего с этим не делаете.
Вы получаете oldscore из объекта (GUI?), но после этого он не обновляется.


Member 14873171

ну addedScore определяется из

int questionNo = 0, legitQuestionNo = 0, newScore = 0, oldScore = 0, addedScore = 0;

поэтому, если выбранный вами ответ присутствует или совпадает со списком правильных ответов из строки correctAnsSet, +1 добавляется в addedScore, но он этого не делает. надеюсь, я объяснил это правильно ;-;

Patrice T

Мы не можем догадаться, чего ты нам не сказал.
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.