public function MultichoiceResponse::score in Quiz 7.4
Same name and namespace in other branches
- 6.4 question_types/multichoice/multichoice.classes.inc \MultichoiceResponse::score()
- 7.6 question_types/multichoice/multichoice.classes.inc \MultichoiceResponse::score()
- 7 question_types/multichoice/multichoice.classes.inc \MultichoiceResponse::score()
- 7.5 question_types/multichoice/multichoice.classes.inc \MultichoiceResponse::score()
Implementation of score
Return value
uint
Overrides QuizQuestionResponse::score
See also
QuizQuestionResponse#score()
File
- question_types/
multichoice/ multichoice.classes.inc, line 917 - The main classes for the multichoice question type.
Class
- MultichoiceResponse
- Extension of QuizQuestionResponse
Code
public function score() {
if ($this->question->choice_boolean || $this
->isAllWrong()) {
$score = $this
->getMaxScore();
foreach ($this->question->alternatives as $key => $alt) {
if (in_array($alt['id'], $this->user_answer_ids)) {
if ($alt['score_if_chosen'] <= $alt['score_if_not_chosen']) {
$score = 0;
}
}
else {
if ($alt['score_if_chosen'] > $alt['score_if_not_chosen']) {
$score = 0;
}
}
}
}
else {
$score = 0;
foreach ($this->question->alternatives as $key => $alt) {
if (in_array($alt['id'], $this->user_answer_ids)) {
$score += $alt['score_if_chosen'];
}
else {
$score += $alt['score_if_not_chosen'];
}
}
}
return $score;
}