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;
}
}
No.2ベストアンサー
- 回答日時:
何かの課題ですか?
丸投げって・・・。
でも暇だったのでちょっと追ってみました。
----------------------------------------------------
$coin = --$coin;
$bet = ++1;
↓
$coin -= 1;
$bet += 1;
----------------------------------------------------
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;}
}
↓
if($a eq $b||$b eq $c) {
if ($a eq '7') {$coin = $coin + $bet * 50;}
elsif ($a eq 'BAR') {$coin = $coin + $bet * 10;}
elsif ($a eq '@') {$coin = $coin + $bet * 5;}
else {$coin = $coin + $bet * 2;}
}
----------------------------------------------------
print<<EOF
↓
print<<EOF;
----------------------------------------------------
とりあえずこれで動く?
動きがおかしいのは考えてね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP php ログイン 1 2022/11/01 00:24
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
途中まで出来ているのですが‥(D...
-
【C#】数値の範囲チェックについて
-
Application.ScreenUpdating = ...
-
文字の横にプルダウンを表示さ...
-
実行時エラー 3020の対策
-
<SELECT>タグの折り返し
-
セレクトメニューで2つの項目...
-
テーブル内でドロップダウンメ...
-
FindFirst を複数条件で検索
-
同じものを繰り返し表示させる
-
VBAでPDFのコピーとリネームを...
-
セレクトボックスの内容を中央寄せ
-
malformed header from script....
-
formで特定のinputを送信しない...
-
print <<"_HTML_"の中でサブル...
-
<python>シンタックスエラーが...
-
複数列を持ったリストボックス...
-
SELECT OPTIONの中身をコピペ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
【C#】数値の範囲チェックについて
-
Perlでアルファベットを数...
-
途中まで出来ているのですが‥(D...
-
フォームで入力した値を表示し...
-
linq で 楽天ウェブサービスのX...
-
リロード後にプルダウンの選択...
-
CGIからメールに書き出しする際...
-
map(STL)でinsertを行いたいで...
-
半角スペースが有効にならない。
-
CGI(Perl)で、Net::FTPを使いたい
-
iteratorの再利用について
-
Visual Basicで作成したプログ...
-
クリックしたら順番に並び替わ...
-
ラズパイで感圧センサーを動か...
-
デコードできない時があります><
-
パターンマッチで変数でマッチ...
-
gpioを使ってSPIをシミュレーシ...
-
Application.ScreenUpdating = ...
おすすめ情報