function showhtml_base($crossm, $crossd, $showsolution, $showhtmlsolutions)
 {
     $textlib = textlib_get_instance();
     $this->m_LegendH = array();
     $this->m_LegendV = array();
     $sRet = "CrosswordWidth  = {$crossm->cols};\n";
     $sRet .= "CrosswordHeight = {$crossm->rows};\n";
     $sRet .= "Words=" . count($crossd) . ";\n";
     $sWordLength = "";
     $sguess = "";
     $ssolutions = '';
     $shtmlsolutions = '';
     $sWordX = "";
     $sWordY = "";
     $sClue = "";
     $LastHorizontalWord = -1;
     $i = -1;
     $LegendV = array();
     $LegendH = array();
     foreach ($crossd as $rec) {
         if ($rec->horizontal == false and $LastHorizontalWord == -1) {
             $LastHorizontalWord = $i;
         }
         $i++;
         $sWordLength .= "," . $textlib->strlen($rec->answertext);
         $sClue .= ',"' . game_tojavascriptstring(game_filtertext($rec->questiontext, 0)) . "\"\r\n";
         $sguess .= ',"' . $rec->studentanswer . '"';
         $sWordX .= "," . ($rec->col - 1);
         $sWordY .= "," . ($rec->row - 1);
         if ($showsolution) {
             $ssolutions .= ',"' . $rec->answertext . '"';
         } else {
             $ssolutions .= ',""';
         }
         if ($showhtmlsolutions) {
             $shtmlsolutions .= ',"' . base64_encode($rec->answertext) . '"';
         }
         $attachment = '';
         //if( game_issoundfile( $rec->attachment)){
         //    $attachment = game_showattachment( $rec->attachment);
         //}
         $s = $rec->questiontext . $attachment;
         if ($rec->horizontal) {
             if (array_key_exists($rec->row, $LegendH)) {
                 $LegendH[$rec->row][] = $s;
             } else {
                 $LegendH[$rec->row] = array($s);
             }
         } else {
             if (array_key_exists($rec->col, $LegendV)) {
                 $LegendV[$rec->col][] = $s;
             } else {
                 $LegendV[$rec->col] = array($s);
             }
         }
     }
     $letters = get_string('millionaire_letters_answers', 'game');
     $textlib = textlib_get_instance();
     unset($this->m_LegendH);
     foreach ($LegendH as $key => $value) {
         if (count($value) == 1) {
             $this->m_LegendH[$key] = $value[0];
         } else {
             for ($i = 0; $i < count($value); $i++) {
                 $this->m_LegendH[$key . $textlib->substr($letters, $i, 1)] = $value[$i];
             }
         }
     }
     unset($this->m_LegendV);
     foreach ($LegendV as $key => $value) {
         if (count($value) == 1) {
             $this->m_LegendV[$key] = $value[0];
         } else {
             for ($i = 0; $i < count($value); $i++) {
                 $this->m_LegendV[$key . $textlib->substr($letters, $i, 1)] = $value[$i];
             }
         }
     }
     ksort($this->m_LegendH);
     ksort($this->m_LegendV);
     $sRet .= "WordLength = new Array( " . $textlib->substr($sWordLength, 1) . ");\n";
     $sRet .= "Clue = new Array( " . $textlib->substr($sClue, 1) . ");\n";
     $sguess = str_replace(' ', '_', $sguess);
     $sRet .= "Guess = new Array( " . $textlib->substr($sguess, 1) . ");\n";
     $sRet .= "Solutions = new Array( " . $textlib->substr($ssolutions, 1) . ");\n";
     if ($showhtmlsolutions) {
         $sRet .= "HtmlSolutions = new Array( " . $textlib->substr($shtmlsolutions, 1) . ");\n";
     }
     $sRet .= "WordX = new Array( " . $textlib->substr($sWordX, 1) . ");\n";
     $sRet .= "WordY = new Array( " . $textlib->substr($sWordY, 1) . ");\n";
     $sRet .= "LastHorizontalWord = {$LastHorizontalWord};\n";
     return $sRet;
 }
 function showhtml_base($crossm, $crossd, $showsolution, $showhtmlsolutions, $showstudentguess, $context, $game)
 {
     $textlib = textlib_get_instance();
     $this->m_LegendH = array();
     $this->m_LegendV = array();
     $sRet = "CrosswordWidth  = {$crossm->cols};\n";
     $sRet .= "CrosswordHeight = {$crossm->rows};\n";
     $sRet .= "Words=" . count($crossd) . ";\n";
     $sWordLength = "";
     $sguess = "";
     $ssolutions = '';
     $shtmlsolutions = '';
     $sWordX = "";
     $sWordY = "";
     $sClue = "";
     $LastHorizontalWord = -1;
     $i = -1;
     $LegendV = array();
     $LegendH = array();
     if ($game->glossaryid) {
         $cmglossary = get_coursemodule_from_instance('glossary', $game->glossaryid, $game->course);
         $contextglossary = get_context_instance(CONTEXT_MODULE, $cmglossary->id);
     }
     foreach ($crossd as $rec) {
         if ($rec->horizontal == false and $LastHorizontalWord == -1) {
             $LastHorizontalWord = $i;
         }
         $i++;
         $sWordLength .= "," . $textlib->strlen($rec->answertext);
         if ($rec->questionid != 0) {
             $q = game_filterquestion(str_replace('\\"', '"', $rec->questiontext), $rec->questionid, $context->id, $game->course);
             $rec->questiontext = game_repairquestion($q);
         } else {
             //glossary
             $q = game_filterglossary(str_replace('\\"', '"', $rec->questiontext), $rec->glossaryentryid, $contextglossary->id, $game->course);
             $rec->questiontext = game_repairquestion($q);
         }
         $sClue .= ',"' . game_tojavascriptstring(game_filtertext($rec->questiontext, 0)) . "\"\r\n";
         if ($showstudentguess) {
             $sguess .= ',"' . $rec->studentanswer . '"';
         } else {
             $sguess .= ",''";
         }
         $sWordX .= "," . ($rec->col - 1);
         $sWordY .= "," . ($rec->row - 1);
         if ($showsolution) {
             $ssolutions .= ',"' . $rec->answertext . '"';
         } else {
             $ssolutions .= ',""';
         }
         if ($showhtmlsolutions) {
             $shtmlsolutions .= ',"' . base64_encode($rec->answertext) . '"';
         }
         $attachment = '';
         //if( game_issoundfile( $rec->attachment)){
         //    $attachment = game_showattachment( $rec->attachment);
         //}
         $s = $rec->questiontext . $attachment;
         if ($rec->horizontal) {
             if (array_key_exists($rec->row, $LegendH)) {
                 $LegendH[$rec->row][] = $s;
             } else {
                 $LegendH[$rec->row] = array($s);
             }
         } else {
             if (array_key_exists($rec->col, $LegendV)) {
                 $LegendV[$rec->col][] = $s;
             } else {
                 $LegendV[$rec->col] = array($s);
             }
         }
     }
     $letters = get_string('lettersall', 'game');
     $textlib = textlib_get_instance();
     $this->m_LegendV = array();
     foreach ($LegendH as $key => $value) {
         if (count($value) == 1) {
             $this->m_LegendH[$key] = $value[0];
         } else {
             for ($i = 0; $i < count($value); $i++) {
                 $this->m_LegendH[$key . $textlib->substr($letters, $i, 1)] = $value[$i];
             }
         }
     }
     $this->m_LegendV = array();
     foreach ($LegendV as $key => $value) {
         if (count($value) == 1) {
             $this->m_LegendV[$key] = $value[0];
         } else {
             for ($i = 0; $i < count($value); $i++) {
                 $this->m_LegendV[$key . $textlib->substr($letters, $i, 1)] = $value[$i];
             }
         }
     }
     ksort($this->m_LegendH);
     ksort($this->m_LegendV);
     $sClue = $textlib->substr($sClue, 1, $textlib->strlen($sClue) - 1);
     $sRet .= "WordLength = new Array( " . $textlib->substr($sWordLength, 1, $textlib->strlen($sWordLength) - 1) . ");\n";
     $sRet .= "Clue = new Array( " . $sClue . ");\n";
     $sguess = str_replace(' ', '_', $sguess);
     $sRet .= "Guess = new Array( " . $textlib->substr($sguess, 1, $textlib->strlen($sguess) - 1) . ");\n";
     $sRet .= "Solutions = new Array( " . $textlib->substr($ssolutions, 1, $textlib->strlen($ssolutions) - 1) . ");\n";
     if ($showhtmlsolutions) {
         $sRet .= "HtmlSolutions = new Array( " . $textlib->substr($shtmlsolutions, 1, $textlib->strlen($shtmlsolutions) - 1) . ");\n";
     }
     $sRet .= "WordX = new Array( " . $textlib->substr($sWordX, 1, $textlib->strlen($sWordX) - 1) . ");\n";
     $sRet .= "WordY = new Array( " . $textlib->substr($sWordY, 1, $textlib->strlen($sWordY) - 1) . ");\n";
     $sRet .= "LastHorizontalWord = {$LastHorizontalWord};\n";
     return $sRet;
 }
 public function showhtml_base($crossm, $crossd, $showsolution, $showhtmlsolutions, $showstudentguess, $context, $game)
 {
     $this->mLegendh = array();
     $this->mLegendv = array();
     $sret = "CrosswordWidth  = {$crossm->cols};\n";
     $sret .= "CrosswordHeight = {$crossm->rows};\n";
     $sret .= "Words=" . count($crossd) . ";\n";
     $swordlength = "";
     $sguess = "";
     $ssolutions = '';
     $shtmlsolutions = '';
     $swordx = "";
     $swordy = "";
     $sclue = "";
     $lasthorizontalword = -1;
     $i = -1;
     $legendv = array();
     $legendh = array();
     if ($game->glossaryid) {
         $cmglossary = get_coursemodule_from_instance('glossary', $game->glossaryid, $game->course);
         $contextglossary = game_get_context_module_instance($cmglossary->id);
     }
     foreach ($crossd as $rec) {
         if ($rec->horizontal == false and $lasthorizontalword == -1) {
             $lasthorizontalword = $i;
         }
         $i++;
         $swordlength .= "," . game_strlen($rec->answertext);
         if ($rec->questionid != 0) {
             $q = game_filterquestion(str_replace('\\"', '"', $rec->questiontext), $rec->questionid, $context->id, $game->course);
             $rec->questiontext = game_repairquestion($q);
         } else {
             // Glossary.
             $q = game_filterglossary(str_replace('\\"', '"', $rec->questiontext), $rec->glossaryentryid, $contextglossary->id, $game->course);
             $rec->questiontext = game_repairquestion($q);
         }
         $sclue .= ',"' . game_tojavascriptstring(game_filtertext($rec->questiontext, 0)) . "\"\r\n";
         if ($showstudentguess) {
             $sguess .= ',"' . $rec->studentanswer . '"';
         } else {
             $sguess .= ",''";
         }
         $swordx .= "," . ($rec->col - 1);
         $swordy .= "," . ($rec->row - 1);
         if ($showsolution) {
             $ssolutions .= ',"' . $rec->answertext . '"';
         } else {
             $ssolutions .= ',""';
         }
         if ($showhtmlsolutions) {
             $shtmlsolutions .= ',"' . base64_encode($rec->answertext) . '"';
         }
         $attachment = '';
         $s = $rec->questiontext . $attachment;
         if ($rec->horizontal) {
             if (array_key_exists($rec->row, $legendh)) {
                 $legendh[$rec->row][] = $s;
             } else {
                 $legendh[$rec->row] = array($s);
             }
         } else {
             if (array_key_exists($rec->col, $legendv)) {
                 $legendv[$rec->col][] = $s;
             } else {
                 $legendv[$rec->col] = array($s);
             }
         }
     }
     $letters = get_string('lettersall', 'game');
     $this->mlegendh = array();
     foreach ($legendh as $key => $value) {
         if (count($value) == 1) {
             $this->mlegendh[$key] = $value[0];
         } else {
             for ($i = 0; $i < count($value); $i++) {
                 $this->mlegendh[$key . game_substr($letters, $i, 1)] = $value[$i];
             }
         }
     }
     $this->mlegendv = array();
     foreach ($legendv as $key => $value) {
         if (count($value) == 1) {
             $this->mlegendv[$key] = $value[0];
         } else {
             for ($i = 0; $i < count($value); $i++) {
                 $this->mlegendv[$key . game_substr($letters, $i, 1)] = $value[$i];
             }
         }
     }
     ksort($this->mlegendh);
     ksort($this->mlegendv);
     $sret .= "WordLength = new Array( " . game_substr($swordlength, 1) . ");\n";
     $sret .= "Clue = new Array( " . game_substr($sclue, 1) . ");\n";
     $sguess = str_replace(' ', '_', $sguess);
     $sret .= "Guess = new Array( " . game_substr($sguess, 1) . ");\n";
     $sret .= "Solutions = new Array( " . game_substr($ssolutions, 1) . ");\n";
     if ($showhtmlsolutions) {
         $sret .= "HtmlSolutions = new Array( " . game_substr($shtmlsolutions, 1) . ");\n";
     }
     $sret .= "WordX = new Array( " . game_substr($swordx, 1) . ");\n";
     $sret .= "WordY = new Array( " . game_substr($swordy, 1) . ");\n";
     $sret .= "LastHorizontalWord = {$lasthorizontalword};\n";
     return $sret;
 }