summaryrefslogtreecommitdiff
path: root/texmf-dist/source/latex/jj-game/doc/jjg_man.tex
blob: 923921ecdc5a0f039a15203e198792954ef79cff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
% makeindex < aebpro_man.idx > aebpro_man.ind

\documentclass{article}
\usepackage{amsmath}
\usepackage[
    web={centertitlepage,designv,forcolorpaper,tight*,latextoc,pro},
    eforms,
%    linktoattachments,
%    attachments={../aeb_pro.dtx},
%    uselayers,
    aebxmp
]{aeb_pro}
\usepackage{aeb_mlink}
\usepackage{graphicx,array,subfigure}
%\usepackage{myriadpro}
\usepackage[altbullet]{lucidbry}
\usepackage{pstricks,pstricks-add}
\usepackage{pst-node}

%\usepackage{makeidx}
%\makeindex

\usepackage{acroman}
\usepackage[active]{srcltx}

\def\pstnodescale{72 72.27 div dup scale }%

% \usepackage[active]{srcltx}

\urlstyle{rm}

\def\tutpath{doc/tutorial}
\def\tutpathi{tutorial}
\def\expath{../examples}

\DeclareDocInfo
{
    university={\AcroTeX.Net},
    title={JJ\_Game Class},
    author={D. P. Story},
    email={dpstory@acrotex.net},
    subject={How to create Jeopardy-like game boards},
    talksite={\url{www.acrotex.net}},
    version={v3.1, 2016/11/24},
    keywords={Jeopardy, LaTeX, games},
    copyrightStatus=True,
    copyrightNotice={Copyright (C) \the\year, D. P. Story},
    copyrightInfoURL={http://www.acrotex.net}
}
\nocopyright

\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}%
   \kern-.6em \hbox{$\mathcal S$}}$}

\universityLayout{fontsize=Large,fontfamily=sffamily}
\titleLayout{fontsize=LARGE,fontfamily=sffamily}
\authorLayout{fontsize=Large,fontfamily=sffamily}
\tocLayout{fontsize=Large,color=aeb,fontfamily=sffamily}
\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb}
\subsectionLayout{indent=-31.25pt,color=aeb,fontfamily=sffamily}
\subsubsectionLayout{indent=0pt,color=aeb,fontfamily=sffamily}
\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}}

%\pagestyle{empty}

\makeatletter
\newcommand{\jjgCng}{\@ifstar{\@jjgCng}{\@jjgCng}}%
\newcommand{\@jjgCng}[1][]{\@gobbletwo}
%\newcommand{\jjgCng}{\@ifstar{\def\jjg@checked{*}\@jjgCng}{\def\jjg@checked{x}\@jjgCng}}%
%\newcommand{\@jjgCng}[1][]{%
%    \if\jjg@checked*\def\jjg@marker{\textcolor{blue}{jjg 3.0}~\textcolor{red}{\ding{052}}\goodbreak}\else
%    \def\jjg@marker{\textcolor{red}{jjg 3.0}}\fi
%    \def\argi{#1}\ifx\argi\@empty
%        \marginpar{\scriptsize\jjg@marker}%
%    \else\marginpar{\scriptsize\jjg@marker\goodbreak\raggedright#1}\fi}
\makeatother

\chngDocObjectTo{\newDO}{doc}
\begin{docassembly}
var titleOfManual="The JJ_Game Manual";
var manualfilename="Manual_BG_Print_jjg.pdf";
var manualtemplate="Manual_BG_Brown.pdf"; // Blue, Green, Brown
var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate;
var doc;
var buildIt=false;
if ( buildIt ) {
    console.println("Creating new " + manualfilename + " file.");
    doc = \appopenDoc({cPath: _pathToBlank, bHidden: true});
    var _path=this.path;
    var pos=_path.lastIndexOf("/");
    _path=_path.substring(0,pos)+"/"+manualfilename;
    \docSaveAs\newDO ({ cPath: _path });
    doc.closeDoc();
    doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true});
    f=doc.getField("ManualTitle");
    f.value=titleOfManual;
    doc.flattenPages();
    \docSaveAs\newDO({ cPath: manualfilename });
    doc.closeDoc();
} else {
    console.println("Using the current "+manualfilename+" file.");
}
var _path=this.path;
var pos=_path.lastIndexOf("/");
_path=_path.substring(0,pos)+"/"+manualfilename;
\addWatermarkFromFile({
    bOnTop:false,
    bOnPrint:false,
    cDIPath:_path
});
\executeSave();
\end{docassembly}
%\def\bUrl{http://www.math.uakron.edu/~dpstory}
%
%\hypersetup{linktocpage}
%
%\makeatletter
%\let\web@copyright=\@gobble
%\makeatother
%
%
%%\makeatletter
%%\renewcommand{\@oddhead}{\normalfont\small\ifodd\c@page\rightmark\hfil\web@rightheader\else\hfil\fi}
%%\makeatother
%
\renewcommand\redpoint{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi
\vskip\medskipamount\noindent
  \makebox[0pt][r]{\makebox[20pt][l]{\large\color{red}$\blacktriangleright$}}}

\newcommand\bluepoint{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi
\vskip\medskipamount\noindent
  \makebox[0pt][r]{\makebox[20pt][l]{\large\color{blue}\ding{42}}}}

\newcommand{\NO}[1]{%
\pscircle(0,0){9pt}
\rput(0,0){#1}
}

\def\cS#1#2{\textField[\Ff\FfReadOnly\textSize{10}\textFont{Arial}\uDV{FEFF#2}\uV{FEFF#2}\BC{}]{#1}{20bp}{11bp}}

%
%\newcommand{\cs}[1]{\texttt{\char`\\#1}}
%\def\Y&Y{Y\kern-.2em{\footnotesize\&}\kern-.2emY}
%\def\parss{\par\smallskip}
%\def\dps{$\mbox{$\mathfrak D$\kern-.3em\mbox{$\mathfrak P$}%
%   \kern-.6em \hbox{$\mathcal S$}}$}
%
%
%
\frenchspacing

\def\jj{\textsf{jj\_game}}

\begin{document}


\maketitle

\changelinkcolorto{black}
\tableofcontents
\changelinkcolorto{webgreen}

\section{Introduction}

The ``\textcolor{red}JavaScript \textcolor{red}Jeopardy
\textcolor{red}Game'', a.k.a., \jj\ (\url{http://ctan.org/pkg/jj-game}), is a \LaTeX{} class file that
can be used to construct a Jeopardy-like game board and the
accompanying answers and questions.  The \jj{} is capable of
constructing a game board for an arbitrary number of categories and
an arbitrary number of questions per category.

There are options for users of \textsf{dvipsone} (from the now defunct \Y&Y),
\textsf{dvips}, \textsf{pdflatex}, \textsf{lualatex}, or \textsf{xelatex} to build a Jeopardy game.

A Jeopardy game, as constructed by {\jj}, consists of three parts: the instructions,
the game board and the question pages. See figures~1, 2 and 3 below.

\begin{figure}[ht]
\centering
\hskip-62.5pt
\begin{minipage}{\linewidth+62.5pt}
\parbox{.3\linewidth}{\includegraphics[width=\linewidth]{jj_instructions1}
\caption{Instructions Page}\label{fig:instrPage}}\hfill
\parbox{.3\linewidth}{\includegraphics[width=\linewidth]{jj_gameboard1}
\caption{Game Board Page}\label{fig:gameboard}}\hfill
\parbox{.3\linewidth}{\includegraphics[width=\linewidth]{jj_questions1}
\caption{Question Page}\label{fig:questions}}
\end{minipage}
\end{figure}

Corresponding to each of these pages are environments and commands
that allow you create content for your Jeopardy quiz game and to designate the
color scheme to be used.

After reading your detailed instructions, the contestant arrives at
the game board page. The contestant chooses a category and a
question in that category (``I'll take `Candles and Wicks' for
200''). When the contestant clicks on the cell, the game jumps to
the question page (``Which end of the candle do you light? What
is\dots''\footnote{The author is making a vague and rather poor play
on words with Wiccan. pooh.}) corresponding to that choice and a
question is posed.

A question can be multiple choice, math fill-in or text fill-in. In
the case of the fill-in type questions, the \pkg{exerquiz} package is
needed. After the contestant answers the question, the game returns
to the game board page, and the score is updated.

Should the contestant reach the goal set by the \texttt{Goal}
property of the \cs{GameDesign} command, when the contestant has
finished answering all questions, a hidden field under that banner
of the game board appears with a short message, as defined by the
\texttt{Champion} property of \cs{GameDesign} command.

There is no reset button, so if you want to play again, just close the game,
and reopen it. Do not save the game before it closes, this will save the form
data and when you open it again, the initial state of the game will not be
restored.

You should be aware of the following features, which are meant to
discourage contestants from looking at the questions by paging
through the PDF or attempting to edit earlier responses.
\begin{itemize}
\item When a question page is opened, the cell in the
    game board that corresponds to that page is blanked out. When
    the contestant returns to the game board, that cell is no longer
    clickable, hence, the contestant cannot legally answer that
    question. When a contestant is on a question page illegally, a
    nasty message appears in an alert box if the contestant answers
    the question on that page.
\item If the contestant answers the question legally, then later returns
    to that same question page and tries to edit the question
    (perhaps because it was missed earlier), a (less than nasty)
    message appears saying that you cannot change your answer.
\end{itemize}

I do hope there will be people out in Cyberland who will use {\jj}
and construct some interesting games for us to enjoy.

\medskip\noindent
Now, I simply must get back to my retirement. \dps

\section{Preliminaries}

%\subsection{Unpackaging the Class}\label{unpack}

%Several modern {\TeX} systems download package and install them with little or no pain; this
%is the easiest way to do it. You can find the {\jj} package at

%To unpack the \texttt{jj\_game.dtx}, `\texttt{latex}' the installation
%file \texttt{jj\_game.ins}. If you use \textsf{Acrobat 5.0}, open the file
%\texttt{jj\_game.ins} in your favorite editor and change the line
%\begin{Verbatim}
%\def\AcrobatOption{Acrobativ} % Acrobativ or Acrobatv
%\end{Verbatim}
%to
%\begin{Verbatim}
%\def\AcrobatOption{Acrobatv}  % Acrobativ or Acrobatv
%\end{Verbatim}
%then do a `\texttt{latex jj\_game.ins}'.
%
%When you distill with the \textsf{Acrobat Distiller~5.0}, the
%document level JavaScripts needed to operate this game are
%automatically inserted when the game is opened in \textsf{Acrobat}
%for the first time.  See the section \Nameref{s:buildgame} for
%more details.

\subsection{Requirements}

The new {\jj} class now uses many of the standard package files from AeB
(\cAcroEB); in particular, the AeB components used are \pkg{web},
\pkg{insdljs} and \pkg{eforms}. The \pkg{exerquiz} package can optionally
be used as well to pose math and text fill-in questions. Therefore, AeB should already be installed
(\url{http://ctan.org/pkg/acrotex}).


The {\jj} class usse the very fine package \texttt{xkeyval}  (2006/11/18
v2.5f or later),\footnote{Located at
CTAN:/tex-archive/macros/latex/contrib/xkeyval}, and the equally nice package
\texttt{xcolor} (2005/11/25 v2.08 or
later),\footnote{CTAN:/tex-archive/macros/latex/contrib/xcolor} if available
on the system. The \texttt{comment} package is also used.\footnote{CTAN:
/tex-archive/macros/latex/contrib/comment} The \pkg{graphicx} package is needed if
you wish to insert graphical backgrounds.

\newtopic\noindent
Requirements based on driver applications:
\begin{itemize}

\item \app{pdflatex}, \app{lualatex}, and \app{xelatex}: {\jj} class works
    with these two applications that that write a document in PDF. Some of
    the features---the \texttt{forcredit} and \texttt{pro} options---of
    {\jj} are not available to these applications.

\item \app{dvips} and \app{dvipsone}: In these two cases, it is assumed that PDF is
creating \app{Acrobat Distiller}, not \app{Ghostscript}; in this case, the
\texttt{forcredit} option (see `\mlnameref{forcreditOption}',
page~\pageref*{forcreditOption}) is available.  If the document author has
Acrobat 7.0 Pro (or later), the \texttt{pro} option (see
`\nameref{proOption}', page~\pageref*{proOption}) can be used as
well.

\end{itemize}
Once the game is built, Adobe Reader 5.0 or later is sufficient to
enjoy the wonderfulness of the time-consuming pass time that is
Jeopardy. If the document author used the \texttt{pro} option, Adobe
Reader 7.0 or later is required.


\subsection{Listing of Sample Files}

The sample files are good templates for designing your own game:
\begin{itemize}
    \item \texttt{jjg\_test.tex}: The original demo file from the first version
    of this class.
    \item \texttt{jg\_ca.tex}: A Jeopardy quiz game constructed for and distributed
    to a College Algebra class for extra credit.
    \item \texttt{jjg\_custom.tex}: An example of a custom design.
    \item \texttt{pro/jjg\_pro\_ca.tex}: Same as \texttt{jg\_ca.tex} but uses the \pkg{aeb\_pro}
    package (with layers) with the \texttt{forcredit} option of \jj. (\app{dvips}/\penalty0\app{Distiller} workflow required)
\end{itemize}
The first three files can be successfully build with
\app{dvips}/\penalty0\app{Distiller}, \app{pdflatex}, \app{lualatex}, and \app{xelatex}.


\section{Options}

The options of this class are listed below. In some cases, you are referred to
other sections of this manual for further details.
\begin{itemize}
\item Driver Options: {\jj} recognizes four drivers. Choose only one.
\begin{itemize}
\item \texttt{dvips}: The dvi-to-ps converter that comes with many \TeX\
    systems.  The Adobe Acrobat Distiller must be used to convert from
    Postscript to PDF.

\item \texttt{dvipsone}: The dvi-to-ps converter by \Y&Y.\footnote{Now
    out of business, but this author still uses it.}  In this case, the
    Adobe Acrobat Distiller must be used to convert from Postscript to
    PDF.

\item \texttt{pdftex}: The tex-to-pdf converter.  The distiller is not
    needed in this case.

\item \texttt{luatex}: The tex-to-pdf converter. The distiller is not
    needed in this case.

\item \texttt{xetex}: The tex-to-pdf converter. The distiller is not
    needed in this case.

\item \texttt{dvipdfm} and \texttt{dvipdfmx}: Less used dvi-to-pdf
    converters.  The distiller is not needed in this case.
\end{itemize}
In the cases of \texttt{pdftex}, \texttt{luatex}, and \texttt{xetex}, \pkg{\jj} performs automatic driver detection
so none of these need to be actually specified in the option list of \pkg{\jj}. If you use
the \texttt{dvips} driver, specify it in the \texttt{jj\_game.cfg} file, as explained on the next page.

%\item \verb+\documentclass[dvips,foils]{jj_game}+\\ This class seems to
%work well with \jj.  There is a switch, \verb+\iffoils+, that you
%can use if you want to switch between a formatting that does not
%use \texttt{foils}, and \texttt{foils}.

\item \texttt{debug}: In the developmental stage, you can use the
\texttt{debug} option that will give you more information in the log
about what is going on.

\item \texttt{double}: The face values of all cells are doubled.
(Double JavaScript Jeopardy!) Use it if you have time, energy and motivation
to write two Jeopardy games.

\item \texttt{final}: After you have completed your
{\jj}, you can, optionally, build it one more time with
the \texttt{final} option. This option removes the menu, the
toolbar, the GUI interface of the Acrobat Viewer; all that is left
is your game.


\item \texttt{pro}: The \texttt{pro} option is available only with
the \texttt{dvips} or \texttt{dvipsone} driver. You are required to
use the AeB Pro package. This package requires that you use Acrobat
7.0 Pro (or later) and to create you PDF using Acrobat Distiller.
For the pro option, the questions are placed in OCGs (optional
content groups, or simply layers). See `\nameref{proOption}' on
page~\pageref*{proOption}.

\item \texttt{forcredit}: This option brings in some security measures
that helps the instructor set up a Jeopardy game that can be used
for (extra) credit in the classroom. See the section titled
\nameref{forcreditOption} on page~\pageref*{forcreditOption}.

\item \texttt{design=\ameta{design\_name}}: There are a limited number of
predefined designs. The values of the design parameter are
\texttt{jeopardy}, \texttt{florida}, \texttt{iceland},
\texttt{hornet}, \texttt{qatar}, \texttt{norway}, \texttt{bahamas},
and \texttt{spain}. These are in addition to the default color design scheme.

\item \texttt{nodesigngraphics}: Some of the designs specified by
the \texttt{design} option have graphical backgrounds.  To use a
specific design without the designed graphical background, use the
\texttt{nodesigngraphics}.  In the preamble, you can optionally
specify your own graphical background using the graphical background
insert commands, see \Nameref{graphicsBGs}.

\item \texttt{lang=\ameta{\upshape{english|german}}}: The Jeopardy game has some
language strings, most notably, the semi-humorous messages that
appear after the player responds to one of the questions. The
\texttt{lang} option allows these common strings to appear in
\texttt{german}. The default is \texttt{english}. When the \texttt{german}
option is in effect, a crude euro symbol is typeset instead of the
dollar, and the euro symbol is used in the score board as well.

\item \texttt{allowpeeking}: The normal behavior of the game is that
if the contestant looks ahead at a question, then the tile on the
game board corresponding to the question viewed is hidden. The
contestant is not allowed to answer that question. Use this switch
to remove this feature of the game.

\item \texttt{twoplayer}: At the request of a user, I've created a \texttt{twoplayer} option;
useful for classroom participation. See \Nameref{tpj} for details.

\end{itemize}

\newtopic\noindent
An example of usage of some of these options is
\begin{Verbatim}[xleftmargin=\amtIndent]
\documentclass[dvips,forcredit,lang=german,
    design=florida]{jj_game}
\end{Verbatim}
You can also set your favorite driver as the default.  Edit the file
\texttt{\jj.cfg} that comes with the distribution and place in it, for
example, the command
\begin{Verbatim}[xleftmargin=\amtIndent]
\ExecuteOptions{dvips}
\end{Verbatim}
\noindent(This sets \textsf{dvips} as the default driver.) In this case
the above example becomes
\begin{Verbatim}[xleftmargin=\amtIndent]
\documentclass[forcredit,lang=german,design=florida]{jj_game}
\end{Verbatim}
Specifying a driver as an optional parameter in the
\cs{documentclass} declaration will override whatever default set in
the \texttt{\jj.cfg} file.

%\newtopic\noindent
%\textbf{\textcolor{red}{Option Removed:}} Previous versions (prior
%to version 3.0) of {\jj} class had a \texttt{foils} option. As far
%as I know, no one used this option, so I am removing it.

% Changes
% Removed support for foils
% Now uses web package, with templates
% eforms, comment



\section{Designing the Game and Posing the Questions}

The following sections outline the design of the game.  If you
don't specify a particular part of the design of the game, then a
default value will be substituted.

The sample file \texttt{jj\_test.tex} represents a prototype game
that you can modify.

\subsection{Stuff for the Preamble}

There is potentially a lot of stuff that goes into the design of the
game.  Again, all have default values, but there are some required
design parameters.

\subsubsection{Banners and Backgrounds}

Throughout the document, there are many colors living in {\LaTeX} space
that are under the control of the document author.  Most all colors
can be set through the argument of the \cs{DeclareColors} command.

\redpoint \cs{DeclareColors}: The argument of \cs{DeclareColors}
consist of key-value pairs. These key-values are in the JavaScript
style, key and value are separated by `\verb*!: !', the space is
required to follow the colon. The key references some color aspect
of the game, the value is named color. A color of
\texttt{transparent} is also recognized. The following is a
\cs{DeclareColors} structure listing all possible keys, with some
named color values.{\small
\begin{Verbatim}
\DeclareColors
{
    fillCells: lightgray,       % background for cells
    fillBanner: PineGreen,      % color of banner
    textBanner: Yellow,         % color of text in banner
    textBoard: Yellow,          % color of text in categories on game board
    fillInstructions: cornsilk, % background of the instructions page(s)
    fillGameBoard: cornsilk,    % background of the game board page
    fillQuestions: cornsilk,    % background of the questions pages
    dollarColor: blue,          % color of the heading of questions page
    linkColor: red,             % color of any hypertext links used
}
\end{Verbatim}
}%
If \cs{DeclareColors} is not present in the preamble, or if present, if the keys are not fully populated,
the default values are used.

See \hyperref[colorscheme]{Section~\ref*{colorscheme}},
beginning page~\pageref*{colorscheme}, for a visual representation of
these colors.

\redpoint \cs{titleBanner}: On the instructions page, see
\hyperref[fig:instrPage]{Figure~\ref*{fig:instrPage}},
page~\pageref*{fig:instrPage}, there is a banner heading. The text of this
banner is set by \cs{titleBanner}
\bVerb\takeMeasure{\string\titleBanner\darg{\ameta{Banner Text}}}%
\begin{dCmd}[commandchars=!()]{\bxSize}
\titleBanner{!ameta(Banner Text)}
\end{dCmd}
\eVerb
This command is required, though if not set, the default text will appear,
``You are the Winner!''. For example
\begin{Verbatim}
\titleBanner{The \TeX\ Game!}
\end{Verbatim}
You can format the banner text using \cs{bannerTextFont} by redefining it. Its default
definition is
\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand{\bannerTextFont}{\sffamily\huge}
\end{Verbatim}
There are other banners in the Jeopardy game, the ones on the questions pages.
The text for these banners are the categories of question you declare
in the \cs{GameDesign} command, discussed in the next section.  The
\cs{bannerTextFont} effects these banners as well.

Finally, there is \cs{bannerTextControl} used for finer positioning of the banner text.
The default definition is
\begin{Verbatim}[xleftmargin=\amtIndent]
\newcommand{\bannerTextControl}[1]{#1}
\end{Verbatim}
This can be redefined for whatever purpose. Normally it is not needed. But, for example
\begin{Verbatim}[xleftmargin=\amtIndent]
\renewcommand{\bannerTextControl}[1]{\raisebox{3pt}{#1}}
\end{Verbatim}
The above example raises the banner text \texttt{3pt}.

\subsubsection{Game Design}\label{gamedesign}

\redpoint \cs{GameDesign}: In order to design a game, you must
have categories and questions in each category.  The
\cs{GameDesign} is the macro that is used for this purpose.
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\GameDesign
{
  Cat: \TeX,                        % list the categories
  Cat: \LaTeX,                      %       "
  Cat: Classes \&~Packages,         %       "
  NumQuestions: 3,                  % number questions per category
  Goal: {3,500},                    % set a goal, just for fun
  GoalPercentage: 0,                % goal as a percentage of money
  CellWidth: 1in,                   % cell width
  CellHeight: .5in,                 % cell height
  ExtraWidth: 0pt,                  % additional width if needed
  ExtraHeight: .2in,                % additional height if needed
  Champion: You are a Champion!     % this text appears if goal is met
}
\end{Verbatim}
The key-value pairs can appear in any order.

\newtopic\noindent
\textbf{Required Keys: } The \texttt{Cat} and
\texttt{NumQuestions} keys are required, though this is not
enforced.

\newtopic\noindent
\textbf{Format for key-value paires.} The format is `\texttt{\ameta{key}:
\ameta{value}}'. Multiple key-values are separated by a comma (,). If the
value contains a comma, enclose the value in braces, as I did above with the
\texttt{Goal}. The last item can have an optional comma (,).

Each key, except \texttt{Cat}, has a default value. The values of
these keys may need to be adjusted depending on the number of
categories, number of questions, and font size.

\bluepoint The value of \texttt{Cat} has an optional argument, you
can say
\begin{Verbatim}[xleftmargin=\amtIndent]
Cat: [\small] Classes \&~Packages,
\end{Verbatim}
The value of the optional argument is inserted just before the
``Classes \&~Packages'' in the category heading of the game board.
In this case, its size is reduced to fit into the bounding
rectangle.

\bluepoint The parmeter \texttt{GoalPercentage} needs comment. You
can set the goal by setting the percentage of the total money in
the game; i.e., \texttt{GoalPercentage: 90}, sets the goal to 90\%
of the total money. If \texttt{GoalPercentage} is present in the
\cs{GameDesign}, and its value differs from the default value of
zero (\texttt0), then the value of the \texttt{Goal} parameter,
if present, is discarded, and a new goal is calculated based on
the percentage of the total money, which is a function of the
number of categories, the number of questions per category, and
whether the \texttt{double} option has been invoked.

\medskip
The {\jj} class takes these entries and computes the values for \cs{paperheight},
\cs{paperwidth} and \cs{textheight}.

I've used some code from Radhakrishnan C V's \textsf{pdfscreen}. In
that regard, you can, however, use \cs{marginsize} to set the
margins around the page, the default is
\begin{Verbatim}[xleftmargin=\amtIndent]
\marginsize{.25in}{.25in}{.25in}{.25in}
\end{Verbatim}

We now turn to defining the attributes of the Acrobat form fields
that appear in the game.

In the next few paragraphs, covering the appearance attributes of
the fields corresponding to \cs{APHidden}, \cs{APDollar},
\cs{APRight}, \cs{APWrong} and \cs{APScore}, colors are specified in
the RGB color space; for example \texttt{0.98 0.92 0.73}. Note that
unlike the color package of {\LaTeX}, the numbers are separated by
spaces not commas.  Also, the keys that begin with the word ``Fill''
(e.g., \texttt{FillColor}) recognize the word \texttt{transparent}
as a value, in this case, there is no background color for that
field.

\redpoint There is a hidden text field in the banner above the game board that is
revealed when the game is over (all questions are answered) and
the goal, set in \cs{GameDesign}, is met.  The \cs{APHidden}
controls the appearance of this hidden banner.
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\APHidden
{
  Champion: You are a Champion!,    % this text appears if goal met
  Font: TiRo,                       % font to be used
  Size: 20,                         % size of the font
  TextColor: 0 0 1,                 % color of the text
  BorderColor: 0 0 0,               % border color
  FillColor: 0.98 0.92 0.73,        % background color
}
\end{Verbatim}
The Champion key can be placed in the \cs{GameDesign} structure;
this is more convenient for creating pre-packaged designs
(such as \texttt{design=jeopardy} and \texttt{design=florida}).

\redpoint \cs{APDollar}: The \cs{DesignGame} just sets basic
parameters, it does nothing towards defining color.  For that, I
have the \cs{APDollar} macro. This macro sets the attributes of the
numbers that appear as the game cells on the game board.
\begin{Verbatim}[fontsize=\small,xleftmargin=\amtIndent]
\APDollar
{
  Font: TiRo,           % font to be use for the numbers
  Size: 20,             % size of font
  TextColor: 0 0 1,     % color for the numbers
  BorderColor: 0 0 0,   % color of border
  FillColor: 1 .35 1,   % the fill color for the cell face
}
\end{Verbatim}
The above are all the defaults. The \cs{APDollar}
macro does not have to appear, unless you want to change one of
the defaults.

\redpoint \cs{APRight} and \cs{APWrong}: Under the face of the
cells are two hidden text fields, one for a ``Right'' answer, one
for a ``Wrong'' answer.  The two macros \cs{APRight} and \cs{APWrong}
have the same key-value arguments.
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\APRight{
  Font: TiRo, Size: 20, TextColor: 0 0 1, Message: Right!}

\APWrong{
  Font: TiRo, Size: 20, TextColor: 1 0 0, Message: Wrong!}
\end{Verbatim}
The default value for the \texttt{Message} parameter is
``\texttt{Right!}'' (``\texttt{Wrong!}''), but these can be changed with
\cs{correctText} (\cs{incorrectText}). For German, for example, you can put
in the preamble \verb+\correctText{Richtig!}+ (\verb+\incorrectText{Falsch!}+),
this command lends itself to customization.

\redpoint \cs{APScore}: There is a text field, set by the command
\cs{ScoreBoard}, to keep track of the score.  The following macro
designs the appearance attributes for the score board.
\begin{Verbatim}[fontsize=\footnotesize]
\APScore{
  Font: TiRo,                   % font to be used
  Size: 20,                     % font size to be used
  TextColor: 0 0 1,             % text color
  BorderColor: 0 0 0,           % border color
  FillColor: 0.98 0.92 0.73,    % background color
  CellHeight: \the\cellHeight,  % default same as cells (usually not specified)
  CellWidth: \the\cellWidth,    % default same as cells (usually not specified)
  AutoPlacement: true,          % auto placement of score, values: true or false
  Score: "",                    % score text
  Currency: "$",                % currency
  align: r,                     % horizonal align: l (left), c (center), r (right)
}
\end{Verbatim}


\bluepoint To get a currency of a EURO or some other currency symbol, use
Unicode; in the case of the EURO, use \verb!Currency: "\string\\u20AC"!.
When the \texttt{lang} option is set to \texttt{german}, the EURO
automatically becomes the default currency symbol.

The following is a listing of some of the common currency signs. Keep in mind, that
these must be escaped like so \verb!Currency: "\string\\00A5"! (Yen Sign).
\begin{center}
\begin{tabular}{lll||lll}
Description     & Unicode   & Symbol                &  Description      & Unicode       & Symbol \\\hline
Dollar Sign     & \cs{u0024}& \cS{Dollar}{0024}     & Lira Sign         & \cs{u20A4}    &\cS{Lira}{20A4}\\
Pound Sign      & \cs{u00A3}& \cS{Pound}{00A3}      & Peseta Sign       & \cs{u20A7}    &\cS{Pesta}{20A7}\\
Currency Sign   & \cs{u00A4}& \cS{Currency}{00A4}   &  New Sheqel Sign  & \cs{u20AA}    &\cS{Sheqel}{20AA}\\
Yen Sign        & \cs{u00A5}& \cS{Yen}{00A5}        & Dong Sign         & \cs{u20AB}    & \cS{Dong}{20AB}\\
French Franc    & \cs{u20A3}& \cS{Franc}{20A3}      & Euro Sign         & \cs{u20AC}    &\cS{Euro}{20AC}\\
\end{tabular}
\end{center}
The Font key needs to have a value of a font that contains the currency symbol. For example,
\texttt{TiRo} and \texttt{Arial} (the open type font versions) both have these currency symbols.

Some currency symbols, and I don't know which are appended to the end of the number. Use
\bVerb\takeMeasure{\string\prependCurrency}%
\begin{dCmd}[commandchars=!()]{\bxSize}
\prependCurrency
\appendCurrency
\end{dCmd}
\eVerb
The first, which is the default, prepends the currency sign to the number, whereas,
the command \cs{appendCurrency} appends it to the end of the number. Execute these in the preamble.

\bluepoint The \texttt{align} parameter horizontally aligns the
contestant's current total in the text field. Permissible values are
\texttt{l} (for left aligned), \texttt{c} (for centered), and
\texttt{r} (for right aligned, the default).

\bluepoint Then \texttt{AutoPlacement} is \texttt{true}, the \cs{ScoreBoard} is
centered directly under the game board. If \texttt{false}, then
you have to provide a placement for the \cs{ScoreBoard}. In this case, use the macro
\cs{PlaceScoreBoard}:
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\PlaceScoreBoard{\vfill\hspace{\rulewidth}\hspace{\extraWidth}%
  \medskip\ScoreBoard}
\end{Verbatim}
This places the score board at the bottom of the page, aligned
with the left edge of the game board.

\subsection{The Stuff in the Body of the Document}

Now that we've finished laying out the design of the game, we are ready to
actually pose the questions. This is done in the body of the document,
following \verb!\begin{document}!, don't you know. First come the instructions,
the contestant can't play the game without instructions!

\subsubsection{The Instructions}

The first page of the game consists of the instructions. Place the
instructions in the \texttt{instructions} environment.
\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\begin{instructions}
!ameta(instructions go here) %!rm perhaps a graphic as well
...
\end{instructions}
\end{Verbatim}

The \verb+\end{instructions}+ ends the page, and inserts the
game board on the next page.

Should you need more than one page of instructions, use
\cs{insertJJTitleBanner}. This command will start a new page and
place the title banner at the top of the page.

\subsubsection{The Questions}

Following the instructions environment comes the question and
multiple choice alternatives. For this, there is a \texttt{Category}
environment, within which is placed a series of \texttt{Question}
environments.  The number of questions per category must be the same
as declared as the value of \texttt{NumQuestions} in the
\cs{GameDesign} macro.

The format is as follows:
\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
\begin{Category}{!ameta(category_name)}
\begin{Question}[!ameta(num_of_columns)]
!ameta(Text of the question)
\Ans0 ...               % a wrong answer
\Ans1 ...               % the right answer
\Ans0 ...               % another wrong answer
\end{Question}
\end{Category}
..........
..........
\end{Verbatim}
The number of categories must be the same as was listed in macro
\cs{GameDesign}.
The \ameta{category\_name} is required; it is used to send
messages to the log about whether you are listing the categories
in the correct order.  It doesn't have to be exactly the same as
was defined in \cs{GameDesign}.

\bluepoint The macro \cs{Ans} typesets the answers, it takes one
argument. An argument of `\texttt0', e.g., \cs{Ans0}, means that
answer is wrong, an argument of `\texttt1', e.g., \cs{Ans1},  means
the answer is the correct one.

\bluepoint The default behavior is a column listing of the answers.  You can
have a tabular format by specifying an optional number in the
brackets, \ameta{num\_of\_columns}.

% jman says add a two column example

Beginning with version 3.0 of {\jj}, you can now pose
fill-in questions, in addition to multiple choice questions. Use
\cs{RespBoxMath} for math fill-in questions and \cs{RespBoxTxt} for
text fill-in questions. See the manual \texttt{aeb\_man.pdf}, the manual
of usage for the \cAcroEB.

Enclose the two commands \cs{RespBoxMath} and \cs{RespBoxTxt} in a special
environment, \texttt{oAnswer}. This environment redefines the actions of these
two standard \textsf{exerquiz} commands.

\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\begin{Question}
    If $f(x) = 2x^2 + x $, what is $f(2x)$?
    \begin{oAnswer}
        \begin{equation*}
            f(2x)=\RespBoxMath{2*(2x)^2 + 2*x}{4}{.0001}{[1,2]}
        \end{equation*}
    \end{oAnswer}
\end{Question}
\end{Verbatim}

\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\begin{Question}
    He was the first president of the United States? Who was\dots
    \begin{oAnswer}
        \RespBoxTxt{2}{1}{3}{George Washington}
        {G. Washington}{Geo. Washington}
    \end{oAnswer}
\end{Question}
\end{Verbatim}
Do not use the optional argument for the \texttt{Question} environment, it is
not needed for fill-in questions.

\redpoint The questions page consist of three parts: (1) The banner that
states the category for this question; (2) the currency heading
which typically says ``\textcolor{blue}{For \$100:}''; and (3) the question.

There are two other commands that can be used to change the
appearance of the questions page.
\bVerb\takeMeasure{\string\currencyHeading\darg{\ameta{currencyHeading}}}%
\begin{dCmd}[commandchars=!()]{\bxSize}
\currencyHeading{!ameta(currencyHeading)}
\aboveCurrencySkip{!ameta(skip)}
\end{dCmd}
\eVerb The \cs{currencyHeading} heading is a command that can be used to change the text that sets up
the question for the page, The default value is
\begin{Verbatim}[xleftmargin=\amtIndent]
\currencyHeading{\bfseries For~\$\theCurrencyAmt:}
\end{Verbatim}
where \cs{theCurrencyAmt} is a command that expands to the correct amount (of currency) for
this question.  Use this command in the preamble to redefine the text.  For \texttt{lang=german},
this text is automatically redefined.

\cs{aboveCurrencySkip} adjusts the amount of vertical space between the page banner, and the currency
heading. The default is
\begin{Verbatim}[xleftmargin=\amtIndent]
\aboveCurrencySkip{0pt}
\end{Verbatim}

\newtopic\noindent And that's all there is to it!

\section{Building the Game}\label{s:buildgame}

For people using \textsf{pdftex} or \textsf{dvipdfm}, there is no
special processing. Just `\textsf{pdflatex}-it' or `\textsf{dvipdfm}-it',
and you are ready to play!

For \textsf{dvipsone} and \textsf{dvips}, some additional steps
are necessary. The \jj{} class uses Document Level JavaScripts to
control the game as it progresses.

For users of \textsf{Acrobat~5.0} or later, the document level
JavaScript is automatically inserted when the game is open in
\textsf{Acrobat} for the first time following distillation, provided
the \textsf{PDF} was saved back into the same folder as the source
file. (It is in this folder that \TeX{} has written the DLJS in the
form of an \textsf{FDF} file.)

Finally, do a `\texttt{Save As}\dots' from \textsf{Acrobat} to
save the DLJS that have just been inserted. You are now ready to play!

\section{Jeopardy for Credit}

This section outlines the support implemented to enable the Jeopardy games produced
by {\jj} to be offered up for credit in a relatively secure environment.

\subsection{AeB No Go Pro}

Should you wish to offer a Jeopardy game for class credit or extra
credit, you need to include \cs{contestantName} to allow the ``contestant'' to
enter his/her name.
\bVerb\takeMeasure{\string\contestantName\darg{\ameta{length}}\darg{\ameta{width}}}%
\begin{dCmd}[commandchars=!()]{\bxSize}
\contestantName{!ameta(length)}{!ameta(width)}
\end{dCmd}
\eVerb
where \ameta{length} and \ameta{width} are the height and width of the text
field. See item \ding{194} of \hyperref[instructionsPage]{Figure~\ref*{instructionsPage}},
page~\pageref*{instructionsPage}.

\CmdLoc Place this command within the \texttt{instructions} environment.

An example of usage:
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\textcolor{red}{\textbf{Name:}}
    \underbar{\contestantName{1.5in}{11bp}}
\end{Verbatim}
In the preamble you can use \cs{afterGameBoardInsertion} to insert material just below
the game board and score board.  Whereas this is a general purpose command, you can
use it to insert a print button
\begin{Verbatim}[xleftmargin=\amtIndent]
  \afterGameBoardInsertion{\medskip\gameboardPrintButton}
\end{Verbatim}
The command \cs{gameboardPrintButton} creates three form fields, a
print-this-page button, a read only text field with the contestant's
name pre-filled (remember, contestant entered her/his name in the
instructions page), and a read only text field that documents when
the contestant first opened the Jeopardy game. There is an optional
argument for \cs{gameboardPrintButton}, this is a standard argument
for changing the appearance of the button (see eForms manual).

The three fields have labels that appear in front of the fields, these labels
can be changed using the following commands:
\bVerb\takeMeasure{\string\contestantNameLabel\darg{\ameta{label for contestant name field}}}%
\begin{dCmd}[commandchars=!()]{\bxSize}
\printButtonCaption{!ameta(caption on button)}
\printButtonLabel{!ameta(button label)}
\contestantNameLabel{!ameta(label for contestant name field)}
\timestampLabel{!ameta(label for time stamp field)}
\timeStampFormat{!ameta(util.printd formatting string)}
\end{dCmd}
\eVerb
Use \cs{printButtonCaption} to change the text that appears on the
button face, called the button caption.\footnote{This label will be part of the button, it is not part of
{\LaTeX} space, so no formatting is used here.} The argument of
\cs{timeStampFormat} is the formatting string of the
\texttt{util.printd()} method, see the documentation on that method
from the \emph{JavaScript for Acrobat API Reference}.

The defaults are, respectively,
\begin{Verbatim}[xleftmargin=\amtIndent]
\printButtonCaption{Print}
\printButtonLabel{Print this page:}
\contestantNameLabel{Student:}
\timestampLabel{Time stamp:}
\timeStampFormat{mm-dd-yy, H:MM:ss.}
\end{Verbatim}
All the above commands are available for all the drivers.

Should you wish to offer up a Jeopardy game for class credit, the
document needs to be secured. If you have Acrobat, version 5.0 or
later, you can give the document a no-printing attribute to prevent
the students from printing the document and handing it around. Wait,
they need to print the game board and hand it in! So setting the
document on no-printing does not help.

How can we print the game board page, yet not allow the students
to print the questions? The answer to this question is in \Nameref{proOption}.

\subsection{AeB Pro}

The techniques described in this section assume the use of the new
AeB Pro (Acro\,\TeX{} eDucation Bundle Professional).  The
requirement for AeB Pro is the document author, that's you, must use
Acrobat Pro, version 7 or later, and must create PDF using Acrobat
Distiller. If you are not one of these types, read no further;
however, it's okay if you read on, maybe the AeB Pro and its
applications will intrigue you enough to convert to the use of Acrobat Pro and
its little brother Distiller.

\subsubsection{The \texttt{forcredit} Option}\label{forcreditOption}

When you take the \texttt{forcredit} option and are using AeB
Pro,\footnote{If you are not using AeB Pro, this option does
nothing.} JavaScript code is added to the document that prevents the
student (contestant :-) from continuing on to the game board page
(or any of the questions page) without first identifying themselves
in the text field created by the \cs{contestantName} command.

This ``annoyance factor'' guarantees the student has identified
himself before playing the game; hence, no excuses when they
turn in the game board with the name hand written in.

This is just one more piece of the puzzle to the problem of Jeopardy
for credit, but it does not solve the printing problem. See the next
section for that.

\subsubsection{The \texttt{pro} Option}\label{proOption}

The \texttt{pro} option brings in the use of layers from AeB
Pro.\footnote{Adobe refers to layers as optional content groups
(OCG).} Layers are content that are placed in different groups. The
groups can be turned on (made visible) or off (made hidden).

The content of each of the question pages is placed in its own
layer and made hidden. If you scroll to a question page, the
question is not visible, as it is still in a hidden state. When you
arrive on the page \emph{legally} via choosing a cell from the game
board, the layer for that question is made visible.

The layers are given a ``no-print even if visible''
attribute,\footnote{Yes, layers, and AeB Pro can do that!} so if the
student prints the document, the layers do not print!

Adobe Reader and Acrobat have a Layers Navigation Panel through
which layers can be made visible, but {\jj} through AeB Pro locks
the layers. A locked layer means that the document consumer cannot
change the state (visible,  hidden) of the layer through the user
interface. The state of a locked layer can be changed, however,
through JavaScript API, and that is exactly what {\jj} does!

When the \texttt{pro} option is used, Adobe Reader 7.0 or later is
required to view the layers (some JavaScript methods are used that
are first defined in version 7).  To prevent people viewing the game
who do not have at least version 7, you can use the  command
\cs{requiresVersion} from AeB Pro. In the preamble of your game place
\begin{Verbatim}[xleftmargin=\amtIndent]
\requiresVersion{7}
\end{Verbatim}
See the documentation of \cs{requiresVersion} for further details,
and related commands that may be useful. When someone opens the
document that does not have at least version 7, either the document
is closed immediately and an alert box is issued, or if the document
is viewed in a browser, an alert message is displayed, and the user
in redirected to another page on the Internet.

This scheme is not air tight, it can be gotten around, but I'm not
telling.

\section{Two Player Jeopardy!}\label{tpj}

When the \texttt{twoplayer} option is taken, two score boards are
created and the two contestants alternate play. The two contestants
are labeled `Player 1' and `Player 2', the border of the score board
is highlighted to indicate whose turn it is.
There is also a check box with a red dot in it to indicated whose
turn it is. The game plays the same, except the
results of each contestant are tabulated in their respective score
board. The rest of this section describes customizations.

In addition to the key-values of \cs{APScore} discussed earlier, see
\nameref{gamedesign}, page~\pageref*{gamedesign},
the following key-values are specific to the \texttt{twoplayer} option.
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\APScore {
    tpScaledCellWidth: .5,
    tpHighlightBorderColor: 1 0 0
}
\end{Verbatim}
When the \texttt{twoplayer} option is used, \textsf{jj\_game} multiplies the \emph{value} of \texttt{CellWidth}
(as specified in \cs{APScore}) by \texttt{tpScaledCellWidth}; if the resultant value is less than the \cs{cellWidth}
(the width of the cells in the game board), \cs{cellWidth} is used for the width of the \texttt{twoplayer} score boards;
otherwise, the resultant value is used. The default value is \texttt{.5}.

The key \texttt{tpHighlightBorderColor} specifies the highlight color; the color that is used to paint the boundary
of the score board of the player whose turn it is. This value is also used to color the check box, the other indicator
of whose turn it is. The value \texttt{tpHighlightBorderColor} is a three component value in RGB color space; the
default is \texttt{1 0 0} (red). Note that there are \emph{no commas} between the component values.

The \textsf{jj\_game} creates a switch \cs{ifjjgtwoplayer} to signal the \texttt{twoplayer} option. This switch may
be used, for example when specifying the value of \texttt{CellWidth} in \cs{APScore}:

\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\APScore {
    Size: 0,
    tpScaledCellWidth: 1,
    CellWidth: \ifjjgtwoplayer\cellWidth+20pt\else2in\fi,
}
\end{Verbatim}
In the above, for two player mode, we set the cell width of the score fields to be the \cs{cellWidth}
of the cells on the game board plus \texttt{20pt}; otherwise, the width is set to \texttt{2in}.
We also set \texttt{tpScaledCellWidth} to 1 so the calculated width of the two player score fields
will be \verb!\cellWidth+20pt! and not half this value, which is what it would be if
\texttt{tpScaledCellWidth} maintains its default value of .5.\footnote{Actually, if \texttt{tpScaledCellWidth}
were .5, the width of the score fields will be \cs{cellWidth}, see the description of
\texttt{tpScaledCellWidth} above.}

\newtopic The \cs{setTwoPlayerOptions} command allows you to specify some other twoplayer key-values.

\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\setTwoPlayerOptions {
    player1: Player 1,
    player2: Player 2,
    playerFmt: \sffamily\small,
    checkbox: true
}
\end{Verbatim}
When in two player mode, there are two score fields. Beneath these fields are \emph{contestant labels}. The values
of \texttt{player1} and \texttt{player2} are used to specify these labels. (The default values are shown in
the example above.) The playerFmt key is a convenient way of specifying the formatting for the contestant
labels. The default is \verb!\sffamily\small!. Finally, there are two check boxes that appear, in addition to
the two score fields, that indicate the turn. The default is that these check boxes appear, if you say,
\texttt{checkbox: false}, the check boxes are not created.


\section{Additional Customizations}

This section includes many commands for customizing
the look of a Jeopardy game.

\subsection{Customize those Text Strings}

In addition to the many strings already documented earlier in this
manual, there are a few others. These strings are either AcroForm
strings or JavaScript strings, so accents must use octal coding or
unicode. For example, use \verb!\string\344! or \verb!\string\u00E4!
(version 7.0 or later) for \"{a}.

The following strings appear either as text on a button face or as a message
in an alert box. The meaning of each command should be clear.
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\correctText{Right!}
\incorrectText{False!}
\enterNamePlease{Please, enter your name on the first
    page before you begin the game!}
\illegalAccessMsg{You are peeking at this question. Choose a
    question from the game board first! You may want to start
    the game over now!}
\illegalAnswerTwiceMsg{Changing your answer is not allowed!}
\end{Verbatim}
New values of these commands must be entered into the preamble.

There are some strings specific to the \texttt{twoplayer} option:

\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
\playeriWinnerMsg{\jjg@playeri\space is the winner!}
\playeriiWinnerMsg{\jjg@playerii\space is the winner!}
\gameTiedMsg{It is all tied up! You are equally matched!}
\bothLosersMsg{You two either are not trying,
    or you do not know anything about the subject!}
\end{Verbatim}
The commands \cs{jjg@playeri} and \cs{jjg@playerii} hold the contestant labels,
as defined by the values of \texttt{player1} and \texttt{player2} of \cs{setTwoPlayerOptions}.
New values of these commands must be entered into the preamble.


\subsection{Graphical Backgrounds}\label{graphicsBGs}

Beginning with version 3.0 of \jj, graphical backgrounds can be inserted into
the Jeopardy game. The basic command for doing this is \cs{template}.
The \cs{template} command is defined in the Web package.  An example
of its usage is
\begin{Verbatim}
\template{myCoolGraphic}
\end{Verbatim}
where \texttt{myCoolGraphic} is a graphic, an EPS file if the driver
is dvips or dvipsone, or a PDF graphic for pdftex. Generally, any
graphic the driver supports.  Place the \cs{template} command
between pages, the graphic will be insert in the next page.

However, to make things even easier, {\jj} defines three commands:
\bVerb\takeMeasure{\string\defineInstructionPageGraphic\darg{\ameta{graphic}}}%
\begin{dCmd}[commandchars=!()]{\bxSize}
\defineInstructionPageGraphic{!ameta(graphic)}
\defineGameboardPageGraphic{!ameta(graphic)}
\defineQuestionPagesGraphic{!ameta(graphic)}
\end{dCmd}
\endgroup
\CmdLoc Place in the preamble of the document.

\CmdDescription The \cs{defineInstructionPageGraphic} command inserts the
graphic for the instruction page(s). The \cs{defineGameboardPageGraphic} command
inserts the graphic for the game board page.
Finally, \cs{defineQuestionPagesGraphic} inserts the graphic for the question
pages. See the \textcolor{blue}{AeB Manual} for more details on the use of templates.

The \textsf{web} package manages the templates of the document. Web
will resize the graphic to fit the dimensions of the page; as a
result, any graphical design may be slightly or greatly distorted. A
slight distortion may be acceptable, but a large distortion is not.

\redpoint The file \texttt{jeopardy\_demo} demonstrates the work of
Simon Singer and J\"{u}rgen Gilg, both of Germany.  In that game,
there are four categories and five questions per category. The game
was built and the positioning of the various elements of the game
(banners, gameboard, score field, etc.) are then known. Simon
brought each of the three types of pages (instruction, game board,
and question) into Adobe Photoshop and designed graphics that fit
exactly around the various elements.  Using these graphics for the
game then yielded the results you see in the Jeopardy game
\texttt{jeopardy\_demo.pdf}. Very swave!

You may be satisfied with a colorful background, a simple graphic as
a background, or something based on a high skill level, such as what
is demonstrated by Simon Singer and J\"{u}rgen Gilg. In the end, it
is all up to you.

\section{Color Summary}\label{colorscheme}

In this section, a visual presentation of the colors that can be set
through the various commands.

\begin{figure}[ht]
\begin{pspicture}(-2,0)(10,8.5)
\rput[lb](0,0){\includegraphics[scale=0.35]{jj_instructions}}
\psline[linecolor=red]{->}(-0.7,7.25)(0,8)
\rput(-1,7){\NO{1}}
\psline[linecolor=red]{->}(-0.7,6.25)(1.5,7.3)
\rput(-1,6){\NO{2}}
\psline[linecolor=red]{->}(-0.6,5)(2.5,4.8)
\rput(-1,5){\NO{3}}
\end{pspicture}
\caption{Instructions Page}\label{instructionsPage}
\end{figure}

\paragraph{Explanations}
\labelsep20pt\itemsep18pt
\begin{itemize}
\item[\NO{1}] This is the background color of the Instruction page.

\textbf{Setup:} \texttt{fillInstructions: myColor} in the \cs{DeclareColors} command
\item[\NO{2}] These are the colors of the title banner of the Instruction page.

\textbf{Setup:} In the \cs{DeclareColors} command, use \texttt{fillBanner: myColor} for the banner background and
    \texttt{textBanner: myColor} for the banner text

\item[\NO{3}] This is a little special to integrate the user's name to identify who's the one that takes the game.

\textbf{Setup:} \verb!\underbar{\contestantName{1.5in}{11bp}}!
\end{itemize}

\begin{figure}[ht]
\begin{pspicture}(-2,0)(10,8.5)
\rput[lb](0,0){\includegraphics[scale=0.35]{jj_gameboard}}
\psline[linecolor=red]{->}(-0.7,7.25)(0,8)
\rput(-1,7){\NO{4}}
\psline[linecolor=red]{->}(-0.7,6.25)(0.6,7.3)
\rput(-1,6){\NO{5}}
\psline[linecolor=red]{->}(-0.6,5)(0.6,4.8)
\psline[linecolor=red]{->}(-0.6,5)(0.6,5.8)
\rput(-1,5){\NO{6}}
\psline[linecolor=red]{->}(-0.6,4)(3,6)
\rput(-1,4){\NO{7}}
\psline[linecolor=red]{->}(-0.6,3)(3,2.75)
\rput(-1,3){\NO{8}}
\psline[linecolor=red]{->}(-0.6,2)(2.5,1.9)
\rput(-1,2){\NO{9}}
%\psgrid
\end{pspicture}
\caption{Gameboard Page}\label{gameboardPage}
\end{figure}

\paragraph{Explanations}
\labelsep20pt\itemsep18pt
\begin{itemize}
\item[\NO{4}] This is the background color of the Game Board page.

\textbf{Setup:} \texttt{fillGameBoard: myColor} in the \cs{DeclareColors} command.
\item[\NO{5}] These are the colors of the game board Categories.

\textbf{Setup:}  In the \cs{DeclareColors} command, use \texttt{fillBanner: myColor} for the category
background and \texttt{textBanner: myColor} for the category text.

\textbf{Note:} This is named equal to the instructions page and possible to be set locally.
\item[\NO{6}] These are the colors of the game board Cells \textbf{after} the questions are taken.

\textbf{Setup:} \texttt{TextColor: 0 0 0, BorderColor}: 0 0 0, for
the cell text and border color in the \cs{APRight} and \cs{APWrong}
commands. The background color is set up using the
\texttt{fillCells} in the \cs{DeclareColors} command.

\textbf{Note:} Here the colors are defined in the rgb color scheme.
\item[\NO{7}] These are the colors of the game board Cells \textbf{before} the questions are taken.


\textbf{Setup:} For the \cs{APDollar} command, use
\texttt{TextColor: 0 0 0, BorderColor: 0 0 0, FillColor: 0.92
0.67 0.1} for the cell text, border and background color, respectively.

\textbf{Note:} Here the colors are defined in the rgb color scheme.
\item[\NO{8}] These are the colors of the Score field.

\textbf{Setup:} \texttt{BorderColor: 0 0 0, FillColor: 0.92 0.67 0.1} for the Score border and background color in the \cs{APScore} command.

\textbf{Note:} The text color of the score is setup in the colors of the \cs{APRight} and \cs{APWrong} commands, so that the user may quickly see, if she/he is in positive or negative score. A minus is additionally setup if the user lost more points than she/he won.

The customer can choose an individual currency as well.
\item[\NO{9}] This is a print option, to print out the game board, after the game is finished. This may be useful for teachers, to collect the individual results of her/his students. That's the reason, why in the instructions page the name was forced to be filled in. Now the name is as well on the print out.

This is automatically setup when the \texttt{forcredit} option for the {\jj} class is taken.
\end{itemize}

\begin{figure}[ht]
\begin{pspicture}(-2,0)(10,8.5)
\rput[lb](0,0){\includegraphics[scale=0.35]{jj_questions}}
\psline[linecolor=red]{->}(-0.7,7.25)(0,8)
\rput(-1,7){\NO{10}}
\psline[linecolor=red]{->}(-0.7,6.25)(0.6,7.3)
\rput(-1,6){\NO{11}}
\psline[linecolor=red]{->}(-0.6,5)(0.6,6)
\rput(-1,5){\NO{12}}
\psline[linecolor=red]{->}(-0.6,4)(0.4,4)
\rput(-1,4){\NO{13}}
\end{pspicture}
\caption{Questions Page}\label{questionPage}
\end{figure}
\paragraph{Explanations}
\labelsep20pt\itemsep18pt
\begin{itemize}
\item[\NO{10}] This is the background color of the Questions page.

\textbf{Setup:} \texttt{fillQuestions: myColor} in the \cs{DeclareColors} command
\item[\NO{11}] These are the colors of the questions Categories.

\textbf{Setup:} In the \cs{DeclareColors} command, use \texttt{fillBanner: myColor} for the questions category background and
    \texttt{textBanner: myColor} for the questions category text.

\textbf{Note:} This is named equal to the banner of the instructions page and possible to be set locally.
\item[\NO{12}] This is a referring text to the taken question score.

\textbf{Setup:} \texttt{dollarColor:\,myColor} for the referring text color
in the \cs{DeclareColors} command.

\textbf{Note:} Text changes can be done with the command:

\verb!\currencyHeading{\bfseries For~\$\theCurrencyAmt:}!
\item[\NO{13}] This is the color of the links (answer possibilities).

\textbf{Setup:} \texttt{linkColor: myColor} for the link color in the \cs{DeclareColors} command
\end{itemize}


\end{document}