のフリーCGI・PHPスクリプトをキーワード、97のカテゴリから検索できます。スクリプトの登録ご利用は一切無料です。


フリー、シェアCGI・PHPスクリプトをキーワード、96のカテゴリから検索できます。

 色々なスクリプトをお探しなら当サイトで検索

  •  フリーのCGI・PHPスクリプトだけをメインに掲載。
  •  ランキングによる評価で人気のスクリプトを紹介。
  •  サンプル(ページ)の閲覧によるダウンロード前の事前評価。
  •  お気に入りスクリプトへのパーソナルリンクの作成。

 スクリプト登録のメリット

  •  フリースクリプトなら一切無料で幾つでも掲載。
  •  細かなカテゴリ(全97項目)で閲覧者に分かり易く分類。
  •  スクリプトを印象づけるサンプル(ページ)の登録が可能。
  •  ダウンロードランキングの実施による人気度の評価。

素材サイト検索
- SPECIAL THANKS -

TOPページFlashを制作して頂きました
[ バナー作成ドットコム ]

じゃんけんゲーム


じゃんけんゲームは、もっともポピュラーで単純なゲームです。
ユーザーに手を決めさせ、コンピュータの手は自動で決定し、それを判定します。

#!/usr/bin/perl

if($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
   $query = $ENV{'QUERY_STRING'};
}
@args = split(/&/, $query);
foreach $i (@args) {
   ($name, $val) = split(/=/, $i);
   $name =~ tr/+/ /;
   $name =~ s/%([0-9a-fA-F]{2})/pack('C', hex($1))/eg;
   $val =~ tr/+/ /;
   $val =~ s/%([0-9a-fA-F]{2})/pack('C', hex($1))/eg;
   $in{$name} = $val;
}

# じゃんけんの手
@te = ('ぐー', 'ちょき', 'ぱー');

print "Content-type: text/html\n\n";
# 手が決定していないなら
if(!$in{'te'}) {
   print "じゃんけん・・・・。";
   foreach(@te) {
      print <<E_O_M;
<form action="test.cgi" method="POST">
<input type="submit" value="$_"><input type="hidden" name="te" value="$_">
</form>
E_O_M
   }
} else {
   # コンピュータの手を決定
   $te = $te[rand(@te)];
   print "あなたの手:$in{'te'}<br>";
   print "コンピュータの手:$te<br><br>";
   # 勝敗判定
   if($in{'te'} eq $te) {
      print "あいこ。";
   } elsif($in{'te'} eq 'ぐー' && $te eq 'ちょき') {
      print "あなたの勝ち。";
   } elsif($in{'te'} eq 'ぐー' && $te eq 'ぱー') {
      print "あなたの負け。";
   } elsif($in{'te'} eq 'ちょき' && $te eq 'ぐー') {
      print "あなたの負け。";
   } elsif($in{'te'} eq 'ちょき' && $te eq 'ぱー') {
      print "あなたの勝ち。";
   } elsif($in{'te'} eq 'ぱー' && $te eq 'ぐー') {
      print "あなたの負け。";
   } elsif($in{'te'} eq 'ぱー' && $te eq 'ちょき') {
      print "あなたの勝ち。";
   } else {
      print "あなたの反則負け。";
   }
}

判定は、面倒ですがあいこ以外はすべて条件分岐で一つ一つ定義しなければなりません。

ここでのポイントは、ランダムに配列から要素を取り出す部分です。
rand関数は、0〜引数までの数(引数の数値にはならない)をランダムに返します。
引数に配列を渡した場合は、配列の要素数が関数へ渡されます。
よって、配列からランダムに要素が取り出されます。
ここで、rand関数にint関数(小数点切り捨て)を使用する必要はありません。

sozaiCLUB