ミスティーネットPerl・CGI講座 パール・CGIレッスン MISTY-NETレンタルサーバー・PERLプログラミング講座 CGI&PERL究極のレシピ

管理運営:有限会社ミスティーネット

| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 |
Perl言語リファレンス

ミスティーネットPerl・CGI講座/基本編
ミスティーネットPerl・CGI講座/基本編
始めに 始めに
変数について 変数について
処理の制御1 処理の制御1
処理の制御2 処理の制御2
配列の処理 配列の処理
ハッシュの処理 ハッシュの処理
数値の扱い 数値の扱い
文字の扱い 文字の扱い
時間の処理 時間の処理
サブルーチン サブルーチン
ファイルの処理 ファイルの処理
ディレクトリの処理 ディレクトリ処理
CGIについて CGIについて
漢字の処理 漢字の処理
    (文字コード)
Cookie の処理 Cookie の処理
正規表現1 正規表現1
正規表現2 正規表現2
演算子について 演算子について
ライブラリ ライブラリ
デバッグ デバック
環境変数について 環境変数
ミスティーネットPerl・CGI講座/基本編

ミスティーネットPerl・CGI講座/応用編
ミスティーネットPerl・CGI講座/応用編
カウンターを作ってみよう カウンターを
     作ってみよう!
ミニゲームを作ってみよう ミニゲームを
     作ってみよう!
ミスティーネットPerl・CGI講座/応用編

ミスティーネットPerl・CGI講座/WEB講座一覧
ミスティーネット
HTML講座 HTML講座
スタイルシート講座 スタイルシート講座
JavaScript講座 JavaScript講座
UNIXコマンド講座 UNIXコマンド講座

ミスティーネット
ラブラブメールでツーショット

人気サイトランキング

人気サイトランキング

8daysランキング

  HOME >> ミニゲームを作ってみよう!
  1. じゃんけんゲームを作ってみよう!
  2. ゲームソース
■ じゃんけんゲームを作ってみよう!
じゃんけんゲームはそんなに難しくありませんので、是非チャレンジしてみてください。
ユーザーに、グー・チョキ・パーのどれにするかをラジオボタンで選択してもらいます。
選択してもらった値と、コンピュータがランダムに作ったじゃんけんの値を比較して勝敗をつけます。
コンピュータの値は、rand 関数を使って作成します。


[大まかな流れ]

1. ユーザーが、グー・チョキ・パーのいずれかを選択。
    ↓
2. コンピューターの手を作成する(rand 関数)
    ↓
3. 勝敗を判定する
    ↓
4. 結果を表示




■ ゲームソース解説
下記が、じゃんけんゲームのソースになります。
特に難しい場所はありませんが、ポイントは、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>
ミスティーネットPerl・CGI講座 − MISTY-NET − <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<h3>対戦じゃんけんゲーム</h3>
* コンピューターとの対戦じゃんけんゲームです。<br><br>
あなた:$HAND{$user} <=> コンピューター:$HAND{$com}<br>
$message<br><br>
</body>
</html>
END_HTML
exit;


[ finger_flashing.html ] ・・・ 入力フォーム
<html>
<head>
ミスティーネットPerl・CGI講座 − MISTY-NET − <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</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>
ラジオボタンの横のテキスト(グー・チョキ・パー)に、<label>タグを設定していますが、 これはユーザーの入力を補助する機能です。これにより、テキスト部分をクリックした場合でも、 それに対応するラジオボタンにチェックがつきます。





| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問い合わせ | ミスティーネット |
(C)Copyright 2002 ミスティーネット Inc. All Right Reserved.