PanicButton

From WeBWorK_wiki
Jump to navigation Jump to search

Panic Button for Answer Hints with a Penalty


This PG code shows how to implement a panic button for answer hints with a penalty.

Problem Techniques Index

PG problem file Explanation
DOCUMENT();

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"problemPanic.pl",
);

TEXT(beginproblem());

Initialization: We need to include the macros file problemPanic.pl.

Context("Numeric");

$answer = Real("sin(pi/3)");

Setup: Everything is standard

BEGIN_TEXT
\( \sin(\pi/3) \) = \{ ans_rule(10) \}
$PAR
\{ Panic::Button(label => "Request a Hint (25% Penalty)", penalty => .25) \}
END_TEXT

if ($panicked) {
BEGIN_TEXT
$PAR
${BBOLD}Hint:${EBOLD} The answer is greater than \( 1/2 \).
$PAR
\{Panic::Button(label => "Another Hint (25% Penalty)", penalty => .25)\}
END_TEXT

# if you want a secondary hint
if ($panicked > 1) {
BEGIN_TEXT
${BBOLD}Hint:${EBOLD} The answer is greater than \( \sqrt{2}/2 \).
END_TEXT
}

}

Main Text: We can construct a hint button that has a penalty associated with it.

$showPartialCorrectAnswers = 1;

# install_problem_grader(~~&avg_problem_grader);

Panic::GradeWithPenalty();

ANS( $answer->cmp() );

ENDDOCUMENT();

Answer Evaluation: We must issue the command Panic::GradeWithPenalty(); after installing a problem grader. The avg_problem_grader is the default, which is why we commented out its installation. If we were to use a different problem grader, we would need to uncomment and modify this line of code.

Problem Techniques Index