Perl/CGIでスロットマシンを作っているのですが・・・
Perl/CGIで簡単なスロットマシンを作成しています。
一通りスクリプトは組んだのですが、うまく動作しません。
以下が自分で作成したスクリプトです。どこが不味いのか分からないので、間違えている箇所を教えてください。お願いします。
#!/usr/bin/perl
$l = 1;
require '/usr/perl5/site_perl/jcode.pl';
&decode;
$bet = $FORM{'bet'};
$go = $FORM{'go'};
$coin = 50;
if ($FORM{'bet'} = $bet) {
$coin = --$coin;
$bet = ++1;
}
elsif ($FORM{'go'} = $go) {
@item=("7","BAR","BAR","@","@","@","-","-","-","-");
$a = $item[int(rand(10))];
$b = $item[int(rand(10))];
$c = $item[int(rand(10))];
if($a==$b||$b==$c) {
if ($a == 7) {$coin = $coin + $bet * 50;}
elsif ($a == BAR) {$coin = $coin + $bet * 10;}
elsif ($a == @) {$coin = $coin + $bet * 5;}
else {$coin = $coin + $bet * 2;}
}
}
else {$coin = 0;}
print<<EOF
Content-type: text/html
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=euc-jp">
<title>スロットマシン</title>
</head>
<body>
<form method="GET" action="kadai2b.cgi">
<center>
コインの所持枚数 ($coin) 賭けるコインの枚数 ($bet)<br>
[$a] [$b] [$c]<br>
<input type="hidden" name="coin" value="$coin">
<input type="submit" name="bet" value="BET">
<input type="submit" name="go" value="GO">
<input type="reset" name="quit" value="QUIT">
<center>
</form>
</body>
</html>
EOF
sub decode {
$ENV{'REQUEST_METHOD'} =~ tr/A-Z/a-z/;
if ($ENV{'REQUEST_METHOD'} eq "post"){
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode::convert(*value, 'euc');
$FORM{$name} = $value;
}
}
お礼
再度確認してみましたところ、うまく動作しておりました。先ほどは500エラーになっていたのですが、どこか記入ミスをしていたのかも知れません。おかげ様で無事解決致しました。有難うございました。