function game_snakes_check_questions($id, $game, $attempt, $snakes, $context) { global $QTYPES, $CFG, $DB; $responses = data_submitted(); if ($responses->queryid != $snakes->queryid) { game_snakes_play($id, $game, $attempt, $snakes, $context); return; } $questionlist = $DB->get_field('game_queries', 'questionid', array('id' => $responses->queryid)); $questions = game_sudoku_getquestions($questionlist); $correct = false; $query = ''; foreach ($questions as $question) { $query = new stdClass(); $query->id = $snakes->queryid; $grade = game_grade_responses($question, $responses, 100, $answertext); if ($grade < 50) { //wrong answer game_update_queries($game, $attempt, $query, 0, $answertext); continue; } //correct answer $correct = true; game_update_queries($game, $attempt, $query, 1, ''); } //set the grade of the whole game game_snakes_position($id, $game, $attempt, $snakes, $correct, $query, $context); }
function game_sudoku_check_questions($id, $game, $attempt, $sudoku, $finishattempt, $course) { global $QTYPES, $DB; $responses = data_submitted(); $offsetquestions = game_sudoku_compute_offsetquestions($game->sourcemodule, $attempt, $numbers, $correctquestions); $questionlist = game_sudoku_getquestionlist($offsetquestions); $questions = game_sudoku_getquestions($questionlist); foreach ($questions as $question) { $query = new stdClass(); $select = "attemptid={$attempt->id}"; $select .= " AND questionid={$question->id}"; if (($query->id = $DB->get_field_select('game_queries', 'id', $select)) == 0) { die("problem game_sudoku_check_questions (select={$select})"); continue; } $name = "resp{$question->id}_"; if (!isset($responses->{$name})) { continue; } $grade = game_grade_responses($question, $responses, 100, $answertext); if ($grade < 50) { //wrong answer game_update_queries($game, $attempt, $query, $grade / 100, $answertext); continue; } //correct answer game_update_queries($game, $attempt, $query, 1, $answertext); } game_sudoku_check_last($id, $game, $attempt, $sudoku, $finishattempt, $course); }
function game_bookquiz_check_questions($id, $game, $attempt, $bookquiz) { global $QTYPES, $CFG, $USER, $DB; $responses = data_submitted(); $questionlist = $responses->questionids; $questions = game_sudoku_getquestions($questionlist); $scorequestion = 0; $scoreattempt = 0; foreach ($questions as $question) { $grade = game_grade_responses($question, $responses, 100, $answertext); if ($grade < 50) { continue; } //found one correct answer $chapterid = $responses->chapterid; if (!$DB->get_field('game_bookquiz_chapters', 'id', array('attemptid' => $attempt->id, 'chapterid' => $chapterid))) { unset($newrec); $newrec->attemptid = $attempt->id; $newrec->chapterid = $chapterid; if (!$DB->insert_record('game_bookquiz_chapters', $newrec, false)) { print_object($newrec); print_error("Can't insert to table game_bookquiz_chapters"); } } //Have to go to next page. $bookquiz->lastchapterid = $responses->nextchapterid; if (!$DB->set_field('game_bookquiz', 'lastchapterid', $bookquiz->lastchapterid, array('id' => $bookquiz->id))) { print_error("Can't compute next chapter"); } $scorequestion = 1; $scoreattempt = $_POST['scoreattempt']; break; } $query->id = 0; $query->attemptid = $attempt->id; $query->gameid = $game->id; $query->userid = $USER->id; $query->sourcemodule = 'question'; $query->questionid = $question->id; $query->glossaryentryid = 0; $query->questiontext = $question->questiontext; $query->timelastattempt = time(); game_update_queries($game, $attempt, $query, $scorequestion, ''); game_updateattempts($game, $attempt, $scoreattempt, 0); game_bookquiz_continue($id, $game, $attempt, $bookquiz); }