![]() |
|||
| | HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
|
HOME >> ミニゲームを作ってみよう!
■ じゃんけんゲームを作ってみよう!
じゃんけんゲームはそんなに難しくありませんので、是非チャレンジしてみてください。 ユーザーに、グー・チョキ・パーのどれにするかをラジオボタンで選択してもらいます。 選択してもらった値と、コンピュータがランダムに作ったじゃんけんの値を比較して勝敗をつけます。 コンピュータの値は、rand 関数を使って作成します。
■ ゲームソース解説
下記が、じゃんけんゲームのソースになります。 特に難しい場所はありませんが、ポイントは、rand 関数によるコンピューターの手の作成と、 勝敗判定の部分です。 → じゃんけんゲームサンプル サンプルでは、ランダムに手を決めるのではなく、学習テーブルを作り、そこからコンピュータが次の手を判断するようにしております。 [ finger_flashing.cgi ]
#!/usr/local/bin/perl # 入力処理(デコード) if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $FORM{$name} = $value; } # 数値をグー・チョキ・パーに対応させる %HAND = ( 0 => 'グー', 1 => 'チョキ', 2 => 'パー' ); # ユーザーの手 $user = $FORM{'user'}; # コンピューターの手 $com = int(rand(3)); ← rand 関数を使って0〜2までのランダムな値を作成する #・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ # 勝敗判定(表示メッセージを決定する) #・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ # あいこ if ( $user == $com ) { $message = "あいこです。"; # ユーザーがグーの場合 } elsif ( $user == 0 ) { if ( $com == 1 ) { $message = "ユーザーの勝ち!"; } if ( $com == 2 ) { $message = "ユーザーの負け"; } # ユーザーがチョキの場合 } elsif ( $user == 1 ) { if ( $com == 0 ) { $message = "ユーザーの負け"; } if ( $com == 2 ) { $message = "ユーザーの勝ち!"; } # ユーザーがパーの場合 } elsif ( $user == 2 ) { if ( $com == 0 ) { $message = "ユーザーの勝ち!"; } if ( $com == 1 ) { $message = "ユーザーの負け"; } # その他の場合 } else { $message = "入力エラー"; } #・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ # 結果表示 #・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ print "Content-Type: text/html\n\n"; print <<END_HTML; <html> <head> </head> <body> <h3>対戦じゃんけんゲーム</h3> * コンピューターとの対戦じゃんけんゲームです。<br><br> あなた:$HAND{$user} <=> コンピューター:$HAND{$com}<br> $message<br><br> </body> </html> END_HTML exit; [ finger_flashing.html ] ・・・ 入力フォーム
<html>
ラジオボタンの横のテキスト(グー・チョキ・パー)に、<label>タグを設定していますが、
これはユーザーの入力を補助する機能です。これにより、テキスト部分をクリックした場合でも、
それに対応するラジオボタンにチェックがつきます。
<head> </head> <body> <h3>対戦じゃんけんゲーム</h3> * コンピューターとの対戦じゃんけんゲームです。<br><br> あなた:$HAND{$user} <=> コンピューター:$HAND{$com}<br> $message<br><br> <form action="./finger_flashing.cgi" method="POST"> <input type="radio" name="user" id="user1" value="0"><label for="user1">グー</label> <input type="radio" name="user" id="user2" value="1"><label for="user2">チョキ</label> <input type="radio" name="user" id="user3" value="2"><label for="user3">パー</label> <input type="submit" value=" じゃんけんポン!! "> </form> </body> </html> |
||||||||||||||||||||||||||||||||||||||