in reply to Re: having trouble with simple math game
in thread having trouble with simple math game

Okay it's getting really close, i got the code to update the 'crops planted' and the 'crops not planted'... but for some reason even though i am creating fill-out forms in the CGI.pm documentation, it is still reading the answer for the math problem ($num1 + $num2) before i get a chance to put in the input...so basically i type in a number and until the addition equals that number there is no output, any advice? thanks, and here's the updated code

#!/usr/bin/perl use CGI qw(:standard); $num1=int(rand(20)); $num2=int(rand(12)); print header; print start_html('A Simple Example'), h1('A Simple Example'), start_form, "What's your name? ",textfield('name'), p, "What is $num1 + $num2? ", textfield('addition'), p, "What's the combination?", p, checkbox_group(-name=>'words', -values=>['eenie','meenie','minie','moe'], -defaults=>['eenie','minie']), p, "What's your favorite color? ", popup_menu(-name=>'color', -values=>['red','green','blue','chartreuse']), p, submit, end_form, hr; $correctanswer=($num1 + $num2); $cropsplanted=0; $cropsnotplanted=0; if ((param() and param('addition') == "$correctanswer")) { $cropsplanted=($cropsplanted + 1); $cropsnotplanted=($cropsnotplanted + 0); print "Correct answer: $correctanswer", p, "Crops planted: $cropsplanted", p, "Crops not planted: $cropsnotplanted", p, "Your name is",em(param('name')), p, "Your answer to the math problem is ", em(param('addition')), p, "The keywords are: ",em(join(", ",param('words'))), p, "Your favorite color is ",em(param('color')), } if ((param() and param('addition') != "$correctanswer")) { $cropsplanted=($cropsplanted + 0); $cropsnotplanted=($cropsnotplanted + 1); print "Correct answer: $correctanswer", p, "Crops planted: $cropsplanted", p, "Crops not planted: $cropsnotplanted", p, "Your name is",em(param('name')), p, "Your answer to the math problem is ", em(param('addition')), p, "The keywords are: ",em(join(", ",param('words'))), p, "Your favorite color is ",em(param('color')), }

Replies are listed 'Best First'.
Re^3: having trouble with simple math game
by mynameisG (Novice) on Nov 29, 2010 at 19:42 UTC

    I figured out what is wrong, but I am not exactly sure how to fix. So I changed the random numbers so that they are no longer random... $num1=20; and $num2=12; and with that it was able to read the input... the problem is with using a random number each time i press submit the random number changes, therefore the answer changes. I need to figure out to store the random values ($num1 and $num2) into another scalar variable (i.e. $a and $b) so that the random numbers don't change when I hit submit. I can't figure out how to do it though? any help would be nice. and just for an fyi, you can't put

    $num1 =$a; $num2=$b;

    because $a and $b will equal random numbers. And I also tried

    my $a=$num1; my $b=$num2;
    and that still didn't work, any help would be great, thanks