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;
}
Example #3
0
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);
}