It seems to be storing the previous $response...For example if $theword equals wax and $response equals axe, I get +1 #number of losses, and if the next $theword equals wax again and $response equals arrow I get +1 to # of wins, because it is reading the previous $response, it's some kind of logic error, I've been playing around with it for a while but I still can't get it, i'm relatively new to perl, so if you notice any logic problems in the code can someone let me know thank you
#!/usr/bin/perl
use strict;
use warnings;
use Template;
print "Content-type: text/html\n\n";
use CGI qw(:standard);
my @words=("sparrow","wax","field","tear");
my $theword=$words[rand @words];
my $startwin=0;
my $startlose=0;
my $game=param('submit');
my $win=param('win');
my $lose=param('lose');
my $response=param('response');
my $picselect=param('picselect');
my $arrow=param('arrow');
my $axe=param('axe');
my $shield=param('shield');
my $spear=param('spear');
my $correctryhm=param('correctryhm');
#another way of setting up a hash
#needs to know where the templates are
my $config={
INCLUDE_PATH =>'../../projectTemplate', #or list ref
INTERPOLATE => 1, #expand '$var' in plain text
POST_CHOMP => 1, #cleans up whitespace
EVAL_PERL =>1, #evaluate Perl code blocks
};
#<body background="../../projectTemplate/indianbackground">
my $output=<<_html_;
<html>
<body>
</body>
</html>
_html_
print $output;
#create a template object
#-> means 'send to'
my $template=Template->new($config);
$response = param('response');
$win = param('win');
$lose = param('lose');
if($game eq "Fight")
{
if($response eq "arrow" && $correctryhm eq "sparrow") {
++$win;
} elsif($response ne "arrow" && $correctryhm eq "sparrow") {
++$lose;
}
if($response eq "axe" && $correctryhm eq "wax") {
++$win;
} elsif($response ne "axe" && $correctryhm eq "wax") {
++$lose;
}
if($response eq "shield" && $correctryhm eq "field") {
++$win;
} elsif($response ne "shield" && $correctryhm eq "field") {
++$lose;
}
if($response eq "spear" && $correctryhm eq "tear") {
++$win;
} elsif($response ne "spear" && $correctryhm eq "tear") {
++$lose;
}
if ($win <= 9 && $lose <= 10)
{
print "<h3>Ryhm the words to win the battle!</h3>";
print "<form method=\"post\" action=\"ryhm.cgi\">";
print "<input type=\"hidden\" name=\"win\" value=\"$win\">";
print "<input type=\"hidden\" name=\"lose\" value=\"$lose\">";
print "<input type=\"hidden\" name=\"response\" value=\"$picselect
+\">";
print "<input type=\"hidden\" name=\"correctryhm\" value=\"$thewor
+d\">";
print "<input name=\"submit\" type=\"submit\" value=\"Fight\" /> <
+br>";
print "Wins: $win <br>";
print "Losses: $lose <br>";
#goes into var1 from projectTemplate and creates image map
my $var1=<<_html_;
<html>
<body>
<IMG src="../../projectTemplate/arrow.jpg\" align="left" /><input name
+="picselect" type="radio" value="arrow" />
<input type="hidden" name="response" value="$arrow">
<input type="hidden" name="response" value="$picselect">
</body>
</html>
_html_
#goes into var2 from projectTemplate and creates image map
my $var2=<<_html_;
<html>
<body>
<IMG src="../../projectTemplate/axe.jpg\" /><input name="picselect" ty
+pe="radio" value="axe" />
<input type="hidden" name="response" value="$axe">
<input type="hidden" name="response" value="$picselect">
</body>
</html>
_html_
#goes into var3 and writes the random word in the box
my $var3="<h3>$theword</h3> <input type=\"hidden\" name=\"correctryhm\
+" value=\"$theword\">";
#goes into var4 from projectTemplate and creates image map
my $var4="<IMG src=\"../../projectTemplate/shield.jpg\" align=\"left\"
+>
<input name=\"picselect\" type=\"radio\" value=\"shield\" />"; #goes i
+nto var5 from projectTemplate
print "<input type=\"hidden\" name=\"response\" value=\"$shield\">
<input type=\"hidden\" name=\"response\" value=\"$picselect\">";
#goes into var5 from projectTemplate
my $var5="<IMG src=\"../../projectTemplate/spear.jpg\">
<input name=\"picselect\" type=\"radio\" value=\"spear\" />";
print "<input type=\"hidden\" name=\"response\" value=\"$spear\">
<input type=\"hidden\" name=\"response\" value=\"$picselect\">";
#set up another hash with var1, var2, var3, var4, var5
my $vars={
var1=>$var1,
var2=>$var2,
var3=>$var3,
var4=>$var4,
var5=>$var5,
};
#gets from template file
my $inputfile='ryhmgame.tpl';
$template->process($inputfile,$vars) || die print "not done";
print "</form>";
}
if ($win == 10)
{
print "<h2>You won the battle!</h2>";
print "Congradualations you held off the enemy!";
}
if ($lose > 10)
{
print "<h2>You failed to kill enough people</h2>";
print "Your family is dead <br>";
print "Game Over <br>";
$output=<<_html_;
<a href="http://esprit.champlain.edu/~ggrillone32001/gamestart.htm">Re
+-start game</a>
_html_
print $output;
}
}
else{
print "<h1>You are about to enter a battle!</h1>";
print "<form action=\"ryhm.cgi\" method=\"post\">";
print "<input name=\"submit\" type=\"submit\" value=\"Fight\" />";
print "<input type=\"hidden\" name=\"win\" value=\"$startwin\">";
print "<input type=\"hidden\" name=\"lose\" value=\"$startlose\">"
+;
print"</form>";
}