function game_print_cryptex($game, $update, $context) { global $DB; require 'cross/cross_class.php'; require 'cross/crossdb_class.php'; require "cryptex/play.php"; $attempt = game_getattempt($game, $crossrec); $updateattempt = false; $onlyshow = true; $showsolution = false; $showhtmlprintbutton = false; $print = true; $crossm = $DB->get_record_select('game_cross', "id={$attempt->id}"); ?> <html dir="ltr" lang="el" xml:lang="el" xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Print</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php game_cryptex_play($update, $game, $attempt, $crossrec, $crossm, $updateattempt, $onlyshow, $showsolution, $context, $print, $showhtmlprintbutton); }
$_GET['id'] = $update; require_once "header.php"; if (!isteacherinanycourse($USER->id)) { error(get_string('only_teachers', 'game')); } $gamekind = $_GET['gamekind']; $id = $update; $attemptid = (int) $_GET['attemptid']; $attempt = get_record_select('game_attempts', "id={$attemptid}"); $game = get_record_select('game', "id={$attempt->gameid}"); $detail = get_record_select('game_' . $gamekind, "id={$attemptid}"); if (array_key_exists('solution', $_GET)) { $solution = $_GET['solution']; } else { $solution = 0; } switch ($gamekind) { case 'cross': game_cross_play($update, $game, $attempt, $detail, '', true, $solution, false, false, false, false, true); break; case 'sudoku': game_sudoku_play($update, $game, $attempt, $detail, true, $solution); break; case 'hangman': game_hangman_play($update, $game, $attempt, $detail, true, $solution); break; case 'cryptex': $crossm = get_record_select('game_cross', "id={$attemptid}"); game_cryptex_play($update, $game, $attempt, $detail, $crossm, false, true, $solution); break; }
function game_cryptex_check($id, $game, $attempt, $cryptexrec, $q, $answer, $context) { global $DB; if ($attempt === false) { game_cryptex_continue($id, $game, $attempt, $cryptexrec, false); return; } $crossm = $DB->get_record_select('game_cross', "id={$attempt->id}"); $query = $DB->get_record_select('game_queries', "id={$q}"); $answer1 = trim(game_upper($query->answertext)); $answer2 = trim(game_upper($answer)); $len1 = textlib::strlen($answer1); $len2 = textlib::strlen($answer2); $equal = $len1 == $len2; if ($equal) { for ($i = 0; $i < $len1; $i++) { if (textlib::substr($answer1, $i, 1) != textlib::substr($answer2, $i, 1)) { $equal = true; break; } } } if ($equal == false) { game_update_queries($game, $attempt, $query, 0, $answer2, true); game_cryptex_play($id, $game, $attempt, $cryptexrec, $crossm, true, false, false, $context); return; } game_update_queries($game, $attempt, $query, 1, $answer2); $onlyshow = false; $showsolution = false; game_cryptex_play($id, $game, $attempt, $cryptexrec, $crossm, true, $onlyshow, $showsolution, $context); }
function game_cryptex_check($id, $game, $attempt, $cryptexrec, $q, $answer) { if ($attempt === false) { game_cryptex_continue($id, $game, $attempt, $cryptexrec); return; } $crossm = get_record_select('game_cross', "id={$attempt->id}"); $query = get_record_select('game_queries', "id={$q}"); $answer1 = trim(game_upper($query->answertext)); $answer2 = trim(game_upper($answer)); $textlib = textlib_get_instance(); $len1 = $textlib->strlen($answer1); $len2 = $textlib->strlen($answer2); $equal = $len1 == $len2; if ($equal) { for ($i = 0; $i < $len1; $i++) { if ($textlib->substr($answer1, $i, 1) != $textlib->substr($answer2, $i, 1)) { $equal = true; break; } } } if ($equal == false) { game_update_queries($game, $attempt, $query, 0, $answer2); game_cryptex_play($id, $game, $attempt, $cryptexrec, $crossm, true); return; } game_update_queries($game, $attempt, $query, 1, $answer2); game_cryptex_play($id, $game, $attempt, $cryptexrec, $crossm, true); }