summaryrefslogtreecommitdiff
path: root/texmf-dist/doc/latex/thorshammer/examples/ordinary-option/thqz-p2c.tex
blob: f9484694b85911790e4240b4978696cb0e47fe16 (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
\documentclass{article}
\usepackage{amstext}
\usepackage[designi]{web}
\usepackage{exerquiz}[2021/06/24]
\usepackage[!showscore]{eq-pin2corr}[2021/06/24]

%\previewOn\pmpvOn

\usepackage[ordinary]{thorshammer}

\thQzHeaderL{Secured Quiz}
\thQzHeaderCQ{Quiz 1}

% Thor's hammer modifies this definition, we restore it to its
% 'ordinary' definition.
\renewcommand\eqQuizPointsMsg{%
"\eqptScore\space"+ptScore+" \eqOutOf\space"+nPointTotal}

\let\app\textsf
\let\pkg\textsf
\let\uif\textsf
\let\env\texttt
\let\opt\texttt
\def\cs#1{\texttt{\char`\\#1}}


\execJSOn
\useBeginQuizButton[\CA{Begin}]
\useEndQuizButton[\CA{End}]

% the default PIN number for eq-pin2corr is 5243
%
% When building your own quiz document, decide on a PIN number
% then use the utility document get-hash-string.pdf to acquire
% the corresponding hash string. Place your own PIN and hash string
% in the two arguments of \declPINId.
\declPINId{5243}{02JRVZdRgYgCA-Rtje8VkD} % PIN number, hash string
% So instructor can bypass entering the PIN.
\classPINVar{_PinCode1}

\DeclareQuiz{qz1}

\begin{document}

\section{Introduction}

\noindent\textbf{Goal:} Make the \uif{Correct} button password protected.
This revised file now uses the
\pkg{\href{https://ctan.org/pkg/eq-pin2corr}{eq-pin2corr}} package to make
things simpler. Additional commands are introduced here to manage the smooth
transition from password PIN protection, to an ordinary quiz, and back to a
PIN protected quiz.\medskip

\noindent\textbf{Discussion:} This file illustrates the methods for
protecting the \uif{Correct} button with a password. To create a PIN
protected \uif{Correct} button, expand \cs{usePINCorrBtn} (\pkg{eq-pin2corr})
prior to the quiz. Following the quiz, use the commands \cs{restoreNormalEndQuiz}
(\pkg{exerquiz}) and \cs{restoreCorrBtn} (\pkg{eq-pin2corr}). The latter
restores the default action of the \uif{End Quiz} control, this is needed
because \pkg{thorshammer} changes this action to a custom action;
\cs{restoreCorrBtn} removes the PIN security of the \uif{Correct} control.

There is another command \cs{useEndQuizThor} (\pkg{thorshammer}) is used to
modify the \uif{End Quiz} control to the action as defined by the
\pkg{thorshammer} package. Read additional comments found in the body and
source of this file.


\newpage

\section{Quiz with PIN to correct}

% require students to answer all questions
\renewcommand\minQuizResp{highThreshold} % 1

For the quiz below, the \uif{Correct} button has an encrypted
password. The password appears in parentheses for the convenience of the casual reader.

% use password version of \CorrButton action
\usePINCorrBtn

\begin{quiz*}{\currQuiz}
Solve each
\begin{questions}
    \item The sum of 1 and 1 is\dots
\begin{answers}{5}
\bChoices
  \Ans0 0\eAns
  \Ans0 1\eAns
  \Ans1 2\eAns
  \Ans0 3\eAns
  \Ans0 4\eAns
\eChoices
\end{answers}
\item $9+8=\RespBoxMath{17}{1}{.0001}{[0,1]}\cgBdry\CorrAnsButton{17}$
\end{questions}
\end{quiz*}\quad\PointsField{\currQuiz}\olBdry\CorrButton{\currQuiz} (PIN: \numPINId)\vcgBdry

\AnswerField{\currQuiz}

\newpage

\thQzHeaderL{Ordinary Quiz}
\thQzHeaderCQ{Quiz 2}


\section{Quiz without PIN to correct}

Now we try to create an ordinary \pkg{exerquiz} quiz without password protection.


% Now do an ordinary quiz
\restoreNormalEndQuiz
\restoreCorrBtn

\renewcommand\minQuizResp{lowThreshold}

\begin{quiz*}{qz2}
Solve each
\begin{questions}
    \item The sum of 1 and 1 is\dots
\begin{answers}{5}
\bChoices
  \Ans0 0\eAns
  \Ans0 1\eAns
  \Ans1 2\eAns
  \Ans0 3\eAns
  \Ans0 4\eAns
\eChoices
\end{answers}
\item $9+8=\RespBoxMath{17}{1}{.0001}{[0,1]}\cgBdry\CorrAnsButton{17}$
\end{questions}
\end{quiz*}\quad\PointsField{\currQuiz}\olBdry\CorrButton{\currQuiz}\vcgBdry

\AnswerField{\currQuiz}


\newpage

\thQzHeaderL{Secured Quiz}
\thQzHeaderCQ{Quiz 3}


\section{Another quiz with PIN to correct}

It is possible to have a different PIN number for this quiz (multiple PINs in one document), but
I see no need for this.

The previous quiz was a normal \pkg{exerquiz} quiz. We now want another PIN protected quiz, so
prior to this next quiz we expand \cs{usePINBtn} and \cs{useEndQuizThor}. The latter is a new
command that restores the default action of the \pkg{thorshammer} package to the \uif{End Quiz} event.

\DeclareQuiz{qz3}

\usePINCorrBtn
\useEndQuizThor

% require students to answer all questions
\renewcommand\minQuizResp{highThreshold}

\begin{quiz*}{qz3}
Solve each
\begin{questions}
    \item The sum of 1 and 1 is\dots
\begin{answers}{5}
\bChoices
  \Ans0 0\eAns
  \Ans0 1\eAns
  \Ans1 2\eAns
  \Ans0 3\eAns
  \Ans0 4\eAns
\eChoices
\end{answers}
\item $9+8=\RespBoxMath{17}{1}{.0001}{[0,1]}\cgBdry\CorrAnsButton{17}$
\end{questions}
\end{quiz*}\quad\PointsField{\currQuiz}\olBdry\CorrButton{\currQuiz} (PIN: \numPINId)\vcgBdry

\AnswerField{\currQuiz}


\end{document}