diff options
author | Karl Berry <karl@freefriends.org> | 2007-03-18 23:47:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-03-18 23:47:52 +0000 |
commit | 62a35122f20906892eb4fb29ba3d402da6fe4a3d (patch) | |
tree | 97aa095aee5f5d440a8fa9b8003b088114dff144 /Master/texmf-dist/tex/latex/jeopardy | |
parent | c3a905b7d1077a53df18bf3eb2c8b037474d958d (diff) |
new package jeopardy (9mar07)
git-svn-id: svn://tug.org/texlive/trunk@4057 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/jeopardy')
-rw-r--r-- | Master/texmf-dist/tex/latex/jeopardy/jeopardy.cfg | 35 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/jeopardy/jeopardy.sty | 686 |
2 files changed, 721 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/jeopardy/jeopardy.cfg b/Master/texmf-dist/tex/latex/jeopardy/jeopardy.cfg new file mode 100644 index 00000000000..de3c3bb379c --- /dev/null +++ b/Master/texmf-dist/tex/latex/jeopardy/jeopardy.cfg @@ -0,0 +1,35 @@ +%% +%% This is file `jeopardy.cfg', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jeopardy.dtx (with options: `cfg') +%% +%% This is a generated file. +%% +%% Copyright (C) 2006 by Robert Marik <marik@mendelu.cz> +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +\ifx\NavigationPanel\undefined\else +\def\NavigationPanel{\normalsfcodes% + \href{\@urlid}{\addButton{\buttonwidth}{\tiny\@Panelhomepagename}}\\ \pfill + \hyperlink{GameBoard}{\addButton{\buttonwidth}{\tiny GameBoard}}\\ \pfill + \Acrobatmenu{FullScreen}{\addButton{\buttonwidth}{\tiny\@Panelfullscreenname}}\\\pfill + \Acrobatmenu{Close}{\addButton{\buttonwidth}{\tiny\@Panelclosename}}\\\pfill + \Acrobatmenu{Quit}{\addButton{\buttonwidth}{\tiny\@Panelquitname}}\\ +} +\fi +\def\PDFSCR@Warning#1{} +\endinput +%% +%% End of file `jeopardy.cfg'. diff --git a/Master/texmf-dist/tex/latex/jeopardy/jeopardy.sty b/Master/texmf-dist/tex/latex/jeopardy/jeopardy.sty new file mode 100644 index 00000000000..f6a32ac332e --- /dev/null +++ b/Master/texmf-dist/tex/latex/jeopardy/jeopardy.sty @@ -0,0 +1,686 @@ +%% +%% This is file `jeopardy.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jeopardy.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2006 by Robert Marik <marik@mendelu.cz> +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{jeopardy} +[2007/03/12 v1.1 .dtx jeopardy file] + +\ifx\shortquiz\undefined +\PackageWarning{Jeopardy}{!!!!!!!!!!!!! Load exerquiz package !!!!!!!!!!!} +\def\finito{\@@end} +\expandafter\finito\fi + +\ifx\dljsRegister\undefined +\PackageWarning{Jeopardy}{!!!!!!!!!!!!! Load dljslib package !!!!!!!!!!!} +\def\finito{\@@end} +\expandafter\finito\fi + +\if\eq@drivernum1%%% pdftex + \typeout{*** using pdftex option ***} + \def\JeopardyNoPeekCommand{ + \edef\ThisPage{/AA<</O<</S/JavaScript/JS(kontrola( + \the\QuestCount,\the\CatCount);)>> >>} + \global\pdfpageattr=\expandafter{\ThisPage}% + } +\else + \def\JeopardyNoPeekCommand{} + \typeout{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!} + \typeout{!!!!!!!! The package has been tested with pdflatex only.} + \typeout{!!!!!!!! Use pdflatex drivers in eforms.sty and exerquiz.sty.} + \typeout{!!!!!!!! On your own risk you can use other drivers + with *allowpeeking* option.} + \PackageWarning{Jeopardy}{No pdftex drivers for eforms and exerquiz} +\fi + +\RequirePackage{multido} + +\DeclareOption{czech}{ +\def\formessage{za} +\def\Scoremessage{Body} +\def\fairmsg{Nesidit! Odpovidate na jinou otazku!} +\def\who@answers@msg#1{Odpovida hrac #1} +\def\RightWrongMessages{ +aCM = new Array\ +( "Spravne! Jen tak dal!", + "Vyborne! Gratuluji!", + "Dobre! Pokracujte ve spravne nacate praci!", + "Ano, ano, ano, ano!", + "Spravne! Zkuste i tezsi otazky", + "Spravna odpoved!", + "Presne tak! Ziskavate dalsi body" +); +aEM = new Array\ +( "To neni spravne! Zkuste jinou otazku.", + "Chyba. Nehadejte!", + "Prosim! Prosim! Premyslejte nez odpovite!", + "Dalsi chyba! Hadanim se daleko nedostanete!", + "Ale ne! Kdepak! Body dolu.", + "Ne, zkuste jinou otazku.", + "Zase spatne! Bohuzel, vase konto se opet snizuje!" +);} +\def\NotAllowedMesssage{"Nesmite menit odpovedi!"} +\def\RightMessage{Spravne} +\def\WrongMessage{Spatne} +\def\JeopardyTitle{Tituln\'\i{} strana} +\def\ChampionMsg{Bravo! Mistr nad mistry!} +} + +\def\formessage{for} +\def\Scoremessage{Score} +\def\NotAllowedMesssage{"Changing your answer is not allowed!"} +\def\RightMessage{Right} +\def\WrongMessage{Wrong} +\def\fairmsg{Play Fair! Answer the question you have clicked!} +\def\who@answers@msg#1{Player #1} +\def\RightWrongMessages{ +aCM = new Array +( "That's Right! Way to go, Kiddo!", + "Wonderfully Done! Congrats!", + "Very Good! Keep up the good work!", + "Good, good, good, good!", + "Gee, you're smart! Try a harder one!", + "You're pretty sharp! Continuez, s'il vous pla\string\356t!", + "You're the tops! But wait...try another." +); +aEM = new Array +( "That's wrong! Sorry. Try Again.", + "Error again. Don't guess, I'm watching!", + "Please! Please! Work it out first!", + "An error has insinuated itself into your calculations. Recalibrate your thinking!", + "Bah! Humbug! You're haunted by Errors!", + "Try again. This time with order and method.", + "Wrong again! Use your little gray cells!" +); +} +\def\JeopardyTitle{Jeopardy Game} +\def\ChampionMsg{You are a Champion!} + +\newif\ifJeopardyNoPeeking +\JeopardyNoPeekingtrue +\DeclareOption{allowpeeking}{\JeopardyNoPeekingfalse} + +\newif\ifEvalOnBlur +\EvalOnBlurfalse +\DeclareOption{evalonblur}{\EvalOnBlurtrue} + +\newif\ifdouble \doublefalse +\def\JeopardyScaleFactor{1} +\DeclareOption{double}{\doubletrue\def\JeopardyScaleFactor{2}} + +\newif\ifoneplayer \oneplayertrue +\DeclareOption{twoplayers}{\oneplayerfalse} + +\newif\if@jeopardyFineTune \@jeopardyFineTunefalse +\DeclareOption{finetune}{\@jeopardyFineTunetrue} + +\DeclareOption{proofing}{\eq@proofingtrue \JeopardyNoPeekingfalse} +\definecolor{webgreen}{rgb}{0,.5,0} + +\newif\if@jeopardyBgPicture +\@jeopardyBgPicturefalse +\DeclareOption{bgpicture}{\@jeopardyBgPicturetrue \everyPushButton{\BC{}}} + +\newif\if@jeopardyPicture +\@jeopardyPicturefalse +\def\Picture{0} +\DeclareOption{picture}{\def\Picture{1}\def\formessage#1.{}% + \@jeopardyPicturetrue + \@jeopardyBgPicturetrue + \Celltoks{\BG{0 0 0}} + \everyPushButton{\BC{}} +} + +\newtoks\GrandPoohbahtoks +\newtoks\Scoretoks +\newtoks\Celltoks +\newtoks\Radiotoks +\newtoks\Playertoks + +\ProcessOptions +\if@jeopardyBgPicture +\RequirePackage{graphicx} +\fi + +\sqTurnOffAlerts + +\newcount \CatCount +\newcount \QuestCount +\newcount \NumberOfCategories +\newcount \NumberOfQuestions +\newcount \QuestCountA \QuestCountA=-1 +\newcount \AnswerCount +\newcount \OQuestionCount +\newcount \temporarycount +\newcounter{tempcounter} +\everyRespBoxMath{\BG{1 1 1}} +\everyRespBoxTxt{\BG{1 1 1}} + +\newlength \GrandPoohbahHeight +\GrandPoohbahHeight = 10pt + +\newlength\GameWidth +\newlength\GameHeight +\newlength\CellWidth +\newlength\CellHeight +\newlength\ScoreCellHeight +\def\SetGameWidth#1{\GameWidth=#1\relax + \CellWidth=\GameWidth + \ifnum\NumberOfCategories=0 + \divide\CellWidth by 10 + \else + \divide\CellWidth by \NumberOfCategories + \fi +} +\def\SetGameHeight#1{\GameHeight=#1\relax + \CellHeight=\GameHeight + \ifnum\NumberOfCategories=0 + \divide\CellHeight by 10 + \else + \divide\CellHeight by \NumberOfQuestions + \fi + \ScoreCellHeight=\CellHeight +} +\AtBeginDocument{ +\SetGameWidth{0.8\linewidth} +\SetGameHeight{0.6\textheight} +} +\newbox\JeopardyPictureBox +\def\JeopardyPictureFile{picture.jpg} +\def\insertJeopardyPicture{% + \setbox\JeopardyPictureBox=% + \hbox{\includegraphics[width=\GameWidth]{\JeopardyPictureFile}}% + \SetGameHeight{1.02\ht\JeopardyPictureBox}% + \dimen0=\CellHeight + \dimen1=0.5\dimen0 + \hbox to 0 pt{\vbox to 0 pt{\kern -\dimen1\box\JeopardyPictureBox\vss}\hss}% +} + +\if@jeopardyPicture + \def\CategoryNameDef#1#2{% + \setcounter{tempcounter}{#1}% + \expandafter\xdef\csname CategoryName#1\endcsname{% + \Alph{tempcounter}\strut}}% +\else + \def\CategoryNameDef#1#2{% + \expandafter\gdef\csname CategoryName#1\endcsname{#2}}% +\fi + +\newenvironment{category}[1]{% + \global\advance \CatCount by 1 + \global\QuestCount=0 + \immediate\write\@auxout{\string\CategoryNameDef{\the\CatCount}{#1}}% + } + {% + \ifnum \QuestCountA=-1 \global\QuestCountA=\QuestCount + \else + \ifnum\QuestCountA=\QuestCount + \else + \PackageWarning{Jeopardy} + {Bad number of questions in Category \the\CatCount.} + \fi + \fi + } +\newenvironment{question}{% + \global\advance \QuestCount by 1\relax + \AnswerCount=0 + \ifJeopardyNoPeeking + \JeopardyNoPeekCommand + \fi + \begin{center}% + \hypertarget{\the\QuestCount\the\CatCount}% + {\csname CategoryName\the\CatCount\endcsname{} % + \formessage{} \the\QuestCount00.}% + \end{center}% +\def\Ans##1{\par +\ifnum\AnswerCount=0 \vskip\medskipamount\fi +\advance\AnswerCount by 1% +\setcounter{tempcounter}{\the\AnswerCount}% +\leavevmode\hbox to 0 pt{% +\hss +\ifeq@proofing \def\temp{##1}\if\temp1$\color{webgreen}\bullet$ \fi\fi +\pushButton[\CA{\alph{tempcounter}}% + \A{\JS{useranswer(##1,\the\QuestCount,\the\CatCount);}}]% + {{Answer\the\AnswerCount-\the\QuestCount-\the\CatCount}}% + {1.3em}{1.3em}% +\hskip1em}% +\leftskip2em}% +\begin{oQuestion}{Q\the\QuestCount\the\CatCount}% +}{\par\end{oQuestion}\newpage} + +\AtEndDocument{ +\immediate\write\@auxout{\string\global\string\NumberOfCategories=\the\CatCount} +\immediate\write\@auxout{\string\global\string\NumberOfQuestions=\the\QuestCount} +} +\ifEvalOnBlur +\def\@@RespBoxMathActions +{% + \AA{ + \AAFormat{\eqFormatArg}% + \AAOnFocus{\JS{var retn = null;}}% + \AAOnBlur{\JS{retn = \processJSfunc(\rbArgs,\compareJSfunc); + if (event.shift){ + if (retn==true) {useranswer(1,\the\QuestCount,\the\CatCount); } + else {if (retn==false) {useranswer(0,\the\QuestCount,\the\CatCount);} + else {app.alert("Probably a syntax error somewhere.");}}} + else + {app.alert("Exit the field with Shift+Click."); + this.getField("obj.\oField.\thequestionno").setFocus(); + }} + } + } +} +\def\@@RespBoxTxtActions +{% + \AA{\AAOnBlur{\JS{retn = ProcRespTxt(\rbTxtAlt); + if (event.shift){ + if (retn==true) {useranswer(1,\the\QuestCount,\the\CatCount); } + else {if (retn==false) {useranswer(0,\the\QuestCount,\the\CatCount);} + else {app.alert("Probably a syntax error somewhere.");}}} + else + {app.alert("Exit the field with Shift+Click."); + this.getField("obj.\oField.\thequestionno").setFocus(); + }} }% + \AAOnFocus{\JS{var retn = null;}} + } +} +\def\jsRespBox[#1]#2{% + \def\compareJSfunc{#1}\def\processJSfunc{#2}% + \ifeq@proofing\makebox[0pt][l]{\space\math@correctAnswer}\fi + \eq@TextField % send to the driver-dependent macro + \ \pushButton{button}{10bp}{10bp}}% +\def\eq@@RespBoxTxt{% + \ifeq@proofing\makebox[0pt][l]{\space\txt@correctAnswer}\fi + \eq@TextField + \ \pushButton{button}{10bp}{10bp}}% +\else +\def\@@RespBoxMathActions +{% + \AA{\AAKeystroke{if(event.willCommit) { + retn = \processJSfunc(\rbArgs,\compareJSfunc); + if (retn==true) {useranswer(1,\the\QuestCount,\the\CatCount); } + else {if (retn==false) {useranswer(0,\the\QuestCount,\the\CatCount);} + else {app.alert("Probably a syntax error somewhere.");}}} + }% + \AAFormat{\eqFormatArg}% + \AAOnFocus{\JS{var retn = null;}}% + }% +}% +\def\@@RespBoxTxtActions +{% + \AA{\AAKeystroke{if(event.willCommit) { + retn = ProcRespTxt(\rbTxtAlt); + if (retn==true) {useranswer(1,\the\QuestCount,\the\CatCount); } + else {if (retn==false) {useranswer(0,\the\QuestCount,\the\CatCount);} + else {app.alert("Probably a syntax error somewhere.");}}} + }% + \AAOnFocus{\JS{var retn = null;}} + } +} +\fi %%% \ifEvalOnBlur +\newtoks\everyCategoryHead +\everyCategoryHead{}% +\def\MakeGameBoard{% + \begin{center}% + \hypertarget{GameBoard}{\JeopardyTitle}% + + \edef\temp{\noexpand\textField[\noexpand\Ff{\noexpand\FfReadOnly}% + \noexpand\F{\noexpand\FHidden}% + \noexpand\Q{1}% + \noexpand\textSize{0}% + \noexpand\V{\ChampionMsg}\the\GrandPoohbahtoks% + ]{GrandPoohbah}{\textwidth}{\the\GrandPoohbahHeight}}% + \temp + + \leavevmode + \ifnum\NumberOfQuestions>0% + \ifnum\NumberOfCategories>0% + \multido{\i=1+1}{\NumberOfCategories}{\leavevmode + \vtop{\hsize=\CellWidth \centering + \the\everyCategoryHead\csname CategoryName\i\endcsname }}\\% + \leavevmode + \if@jeopardyBgPicture\insertJeopardyPicture\fi + \Multido{\i=1+1}{\NumberOfQuestions}% + {\edef\j{\i}% + \if@jeopardyPicture\hbox to 0 pt{\hss$\j$ }\fi + {\Multido{\i=1+1}{\NumberOfCategories}{% + \edef\temp{\noexpand\textField[% + \noexpand\Ff{\noexpand\FfReadOnly}% + \noexpand\S{S}% + \noexpand\Q{1}% + \the\Celltoks]{Field\j\i}{\CellWidth}{\CellHeight}}% + \hbox to 0 pt{\temp\hss}% + \if@jeopardyPicture + \pushButton[\S{B}% + \A{\JS{kliknuti(\j,\i);}}]{Button\j\i}{\CellWidth}{\CellHeight}% + \else + \pushButton[\S{B}\CA{\j00}% + \A{\JS{kliknuti(\j,\i);}}]{Button\j\i}{\CellWidth}{\CellHeight}% + \fi + }\\\leavevmode}% + }% + \fi + \fi + \par + \AfterGameBoard + \if@jeopardyPicture + \smallskip\leavevmode + \hfill\pushButton[\A{\JS{hideall();}}\CA{Solution}]{Solution}{1.5cm}{12bp} + \else + \@makeScoreField + \fi + \end{center}% + \newpage +}% + +\def\@makeScoreField +{ + \ifoneplayer + \dimen0=\NumberOfCategories\CellWidth + \edef\temp{\noexpand\textField[\noexpand\V{}\noexpand\textSize{0} + \noexpand\Q{1} + \noexpand\Ff{\noexpand\FfReadOnly} + \the\Scoretoks + ]{Total.1}{\dimen0}{\ScoreCellHeight}}% + \temp + \else%two players + \dimen0=\NumberOfCategories\CellWidth + \dimen1=0.5\dimen0 + \edef\temp{\noexpand\textField[\noexpand\V{}\noexpand\textSize{0} + \noexpand\Q{1} + \noexpand\Ff{\noexpand\FfReadOnly} + \the\Scoretoks + ]{Total.1}{\dimen1}{\ScoreCellHeight}}% + \temp + \edef\temp{\noexpand\textField[\noexpand\V{}\noexpand\textSize{0} + \noexpand\Q{1} + \noexpand\Ff{\noexpand\FfReadOnly} + \the\Scoretoks + ]{Total.2}{\dimen1}{\ScoreCellHeight}}% + \temp\\ + \hbox to \hsize{\hss\hbox to \dimen0 + {\hss + \radioButton[\V{1}\Ff{\FfNoToggleToOff}\A{\JS{player=1;this.getField("whoanswers").value= "\who@answers@msg{A}";}}]{radio}{12pt}{12pt}{1} + \hss + \hbox % to 0 pt + {\hss + \edef\temp{% + \noexpand\textField[\noexpand\Q{1}\noexpand\Ff{\noexpand\FfReadOnly}\noexpand\V{\who@answers@msg{A}}\the\Playertoks] + {whoanswers}{0.6\dimen0}{10pt}}\temp\hss + } + \hss + \radioButton[\Ff{\FfNoToggleToOff}\A{\JS{player=2;this.getField("whoanswers").value= "\who@answers@msg{B}";}}]{radio}{12pt}{12pt}{2} + \hss}\hss + }% + \fi +} + +\let\AfterGameBoard\relax +\edef\Goal{45*(1+numQuestions)*numQuestions*numCategories*\JeopardyScaleFactor} + +\def\update@who@answers{ +if (player==1) this.getField("whoanswers").value= "\who@answers@msg{A}"; +else this.getField("whoanswers").value= "\who@answers@msg{B}"; +} + +\edef\JeopardyUpdatescore +{ + \ifoneplayer + this.getField("Total.1").value="\Scoremessage: "+TotalScoreA; + if (TotalScoreA>0) + this.getField("Total.1").textColor=\correctColor; + else this.getField("Total.1").textColor=\wrongColor; + \else + this.getField("Total.1").value="\Scoremessage: "+TotalScoreA; + if (TotalScoreA>0) + this.getField("Total.1").textColor=\correctColor; + else this.getField("Total.1").textColor=\wrongColor; + this.getField("Total.2").value="\Scoremessage: "+TotalScoreB; + if (TotalScoreB>0) + this.getField("Total.2").textColor=\correctColor; + else this.getField("Total.2").textColor=\wrongColor; + if (player==1) {player=2; this.getField("radio").value=2;} + else {player=1; this.getField("radio").value=1}; + \update@who@answers + \fi +} + +\begin{insDLJS}[dljslibRMb]{dljsliRMb}{RMb} +numQuestions = \the\NumberOfQuestions; +numCategories = \the\NumberOfCategories; +var player=1; +RowClick=0; +ColClick=0; +SaveRowClick=0; +SaveColClick=0; +totalQuestions = numQuestions * numCategories; +var QAed =""; +for (var i=0; i< totalQuestions; i++)QAed +="0"; +nEM = 0; +nCM = 0; +var submitted = 0; +TotalScoreA = 0; +TotalScoreB = 0; +NumQAed = 0; +Goal = \Goal; +\RightWrongMessages +var Picture=\Picture; +var JeopardyPass=0; + +function kontrola(row,col) +{ + if (NumQAed<totalQuestions) + { + var p = numQuestions*(col-1)+row-1; + if (row!=RowClick) gotoNamedDest("GameBoard"); + if (col!=ColClick) gotoNamedDest("GameBoard"); + RowClick=0; + ColClick=0; + } +}; + +function kliknuti(row,col) +{RowClick=row; +ColClick=col; +SaveColClick=col; +SaveRowClick=row; +gotoNamedDest(row+""+col); +}; + +function useranswer(ans,rowans,colans) +{ + if ((rowans!=SaveRowClick) || (colans!=SaveColClick)) + { + app.alert("\fairmsg"); + gotoNamedDest("GameBoard"); + return null; + } + row= SaveRowClick; + col= SaveColClick; + this.getField("Button"+row+col).hidden=true; + var p = numQuestions*(col-1)+row-1; + if (QAed.charAt(p)==0) + { + QAed = QAed.substring(0,p)+1+QAed.substring(p+1,totalQuestions); + if (ans==1) + { + if (Picture==1) + { + this.getField("Field"+row+col).hidden=true; + } + else + { + this.getField("Field"+row+col).textColor=\correctColor; + this.getField("Field"+row+col).value="\RightMessage"; + } + if (player==1) + TotalScoreA += \JeopardyScaleFactor*row*100; + else + TotalScoreB += \JeopardyScaleFactor*row*100; + app.alert(aCM[nCM],3); + if (++nCM > 6) nCM=0; + } + else + { + if (Picture!=1) + { + this.getField("Field"+row+col).textColor=\wrongColor; + this.getField("Field"+row+col).value="\WrongMessage"; + } + if (player==1) + TotalScoreA -= \JeopardyScaleFactor*row*100; + else + TotalScoreB -= \JeopardyScaleFactor*row*100; + app.alert(aEM[nEM],3); + if (++nEM > 6) nEM=0; + } + if ((++NumQAed>=totalQuestions) && ((TotalScoreA+TotalScoreB)>=Goal)) + { + if (Picture!=1) this.getField("GrandPoohbah").hidden=false; + } + } + else + app.alert(\NotAllowedMesssage); + gotoNamedDest("GameBoard"); + if (Picture!=1) + { + \JeopardyUpdatescore + } +}; +function hideall(){ + NumQAed=totalQuestions; + var i=0; + var j=1; + if (JeopardyPass==0) + { + JeopardyPass=1; + for (var i=0; i< numQuestions; i++) + { + for (var j=0; j< numCategories; j++) + { + row=i+1; col=j+1; + this.getField("Field"+row+col).hidden=true; + this.getField("Button"+row+col).hidden=true; + } + } + } + else + this.getField("GrandPoohbah").hidden=false; +} +function notifyField(success, flag, fieldname) { + return success; +} +\end{insDLJS} +\newlength\AditionalShift +\AditionalShift=0pt + +\if@jeopardyFineTune +\newlength \finetunelength +\newlength \finetuneCellWidth +\newlength \finetuneCellHeight +\finetunelength=1pt + +\def\insertJeopardyPicture{% + \dimen1=\finetunelength + \multiply\dimen1 by \NumberOfCategories + \advance\dimen1 by \GameWidth + \setbox\JeopardyPictureBox=% + \hbox{\includegraphics[width=\dimen1]{\JeopardyPictureFile}}% + \dimen1=\finetunelength + \multiply\dimen1 by \NumberOfQuestions + \dimen2=\ht\JeopardyPictureBox + \advance\dimen2 by -1.9\dimen1 + \SetGameHeight{\dimen2}% + \dimen0=\CellHeight + \divide\dimen0 by 2 + \hbox to 0 pt{\vbox to 0 pt{\kern -\dimen0\kern-\AditionalShift + \box\JeopardyPictureBox\vss}\hss}% +} + +\def\MakeGameBoard{% + \begin{center}% + \fboxsep=\finetunelength + \fboxrule=0pt + \hypertarget{GameBoard}{\JeopardyTitle}% + + \edef\temp{\noexpand\textField[\noexpand\Ff{\noexpand\FfReadOnly}% + \noexpand\F{\noexpand\FHidden}% + \noexpand\Q{1}% + \noexpand\textSize{0}% + \noexpand\V{\ChampionMsg}\the\GrandPoohbahtoks% + ]{GrandPoohbah}{\textwidth}{\the\GrandPoohbahHeight}}% + \temp + + \leavevmode + \ifnum\NumberOfQuestions>0% + \ifnum\NumberOfCategories>0% + \multido{\i=1+1}{\NumberOfCategories}{\leavevmode + \vtop{\hsize=\CellWidth \centering + \the\everyCategoryHead\csname CategoryName\i\endcsname }}\\% + \leavevmode + \if@jeopardyBgPicture\insertJeopardyPicture\fi + \finetuneCellWidth=\CellWidth + \advance\finetuneCellWidth by -\finetunelength + \finetuneCellHeight=\CellHeight + \vtop{% + \Multido{\i=1+1}{\NumberOfQuestions}% + {\edef\j{\i}% + \hbox{% + \if@jeopardyPicture\hbox to 0 pt{\hss$\j$ }\fi + \Multido{\i=1+1}{\NumberOfCategories}{% + \edef\temp{\noexpand\textField[% + \noexpand\Ff{\noexpand\FfReadOnly}% + \noexpand\S{S}% + \noexpand\Q{1}% + \the\Celltoks]{Field\j\i}{\finetuneCellWidth}{\finetuneCellHeight}}% + \fbox{\hbox to 0 pt{\temp\hss}% + \if@jeopardyPicture + \pushButton[\S{B}% + \A{\JS{kliknuti(\j,\i);}}]{Button\j\i}{\finetuneCellWidth}{\finetuneCellHeight}% + \else + \pushButton[\S{B}\CA{\j00}% + \A{\JS{kliknuti(\j,\i);}}]{Button\j\i}{\finetuneCellWidth}{\finetuneCellHeight}% + \fi% + }}}\kern-1pt + }}% + \fi %%% \ifnum\NumberOfQuestions>0% + \fi %%% \ifnum\NumberOfCategories>0% + \par + \AfterGameBoard + \if@jeopardyPicture + \smallskip\leavevmode + \hfill\pushButton[\A{\JS{hideall();}}\CA{Solution}]{Solution}{1.5cm}{12bp} + \else%not picture + \@makeScoreField + \fi + \end{center}% + \newpage +}% +\fi + +\IfFileExists{jeopardy.cfg}{% + \typeout{---------------------------------------------------} + \typeout{jeopardy: Configuration from the file jeopardy.cfg.} + \typeout{---------------------------------------------------} + \input jeopardy.cfg}{} +\endinput +%% +%% End of file `jeopardy.sty'. |