#!/usr/bin/perl use CGI; use CGI::Carp(fatalsToBrowser); $cgi = new CGI; $me = $cgi->script_name; for($cgi->param()) { $F{$_} = $cgi->param($_); } $DEBUG = 0; require "init.pl"; require "func.pl"; # detect & update changed answers if(defined $F{wronglist}) { for(keys %F) { if($_ =~ /^q(\d+)$/) { $fix_answer = $1; $f_answers[$fix_answer-1] = $F{"q$fix_answer"}; $F{answerlist} = ''; for(@f_answers) { $F{answerlist} .= $_; } } } } if($#f_answers>8) { $F{wronglist} = &scoreAnswers; delete $F{wronglist} if $F{wronglist} eq ''; } &printTop; ## default - print intro text if($F{stage} eq 'intro') { &print_intro; ## all answered, check for errors, print correct ending/link } elsif($F{stage} eq '11') { # code to control which image is printed is at the end of &ele_top if(not $num_wrong) { print<You did it!
Congratulations. Jack and his mother thank you in a BIG way!

DONE } elsif($num_wrong) { local @wrong = split "",$F{wronglist}; for(@wrong) { if($#wrong > 0) { if($wrong[$#wrong-1] eq '1' and $wrong[$#wrong] eq '0') { $wrong[$#wrong-1] = 10; $wrong[$#wrong] = ''; } } } $still_some_wrong = qq'$num_wrong wrong'; print<Jack's mother is getting closer, ($num_wrong wrong)
but she still hasn't found him. Try changing some of your answers to help them along.


YOULOSE } ## print question, check for existing answer } else { if(defined $F{wronglist}) { $b_ans = $f_answers[$F{stage}-1]; @wrong = split "",$F{wronglist}; for(@wrong) { if($#wrong > 0) { if($wrong[$#wrong-1] eq '1' and $wrong[$#wrong] eq '0') { $wrong[$#wrong-1] = 10; $wrong[$#wrong] = ''; } } } for($i = 0; $i <= $#wrong; $i++) { if($F{stage} eq $wrong[$#wrong]) { $next = 11; break; } elsif($F{stage} eq '10') { $next = 11; break; } elsif($F{stage} eq $wrong[$i]) { $next = $wrong[$i+1]; break; } } } else { $next = $F{stage} +1; } if($b_ans ne '') { if($b_ans == 0) { $answer_0 = ' checked'; } elsif($b_ans == 1) { $answer_1 = ' checked'; } elsif($b_ans == 2) { $answer_2 = ' checked'; } } print qq'$questions[$F{stage}-1]

\n'; for(local $i = 0; $i < 3; $i++) { print qq' $answers[$F{stage}-1][$i]
\n'; } print qq'\n'; print qq'\n' if $F{wronglist} ne ''; print qq'\n'; if(($F{wronglist} ne '' and $F{stage} eq $wrong[$#wrong]) or $F{stage} > 10) { $b_msg = 'Score Answers'; } else { $b_msg = 'Continue'; } print qq'
\n'; } print "\n"; print "\n" unless $F{stage} eq '11'; &ele_bot;