# PanicButton

## Panic Button for Answer Hints with a Penalty

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

PG problem file Explanation
DOCUMENT();

"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.