じゃんけんぽんゲーム、グラフィック版



●はじめに

やはりジャンケンは、手が出てこないとものたりません。そこで、グラフィックをつけてみました。スクリプトは、ほとんど同じなのです。

●実行例

じゃんけんをするならここをクリック

●導入手順

1.「jyankeng.cgi」を入手します

ここをクリックするとファイルが拾えます

これをFTPで自分のサイトに転送します。

2.ファイルのパーミッションを変更します

$chmod 755 jyankeng.cgi

※「$」はUNIXのプロンプトだから入力する必要はないよ。

3.動作確認をします

$jyankeng.cgi

jyankeng.cgiを実行して、その時間とメッセージが表示されればOKです。

4.HTML文書にスクリプトを実行するための1行を入れます

<!--#exec cmd="jyankeng.cgi"-->

●リスト

#!/usr/local/bin/perl
#じゃんけん、グラフィック版▲(c)p4room(http://p4room.mda.or.jp/~roro/)

$_ = substr($ENV{"QUERY_STRING"}, 0, 1);	#引数の最初の1文字を取得
$file = "count.log";
open(FILE,"+<$file") || die "$fileが開けません";	#読み書き両用オープン
flock(FILE,2);		#ロックする(使用中なら未使用になるまで待つ)
chop(@count = <FILE>);	#勝敗カウンタを配列に読み込む

if ( $_ ne "") {				#初めてのときはじゃんけんしない
   @jyan = ("<IMG SRC=gu.gif>" ,"<IMG SRC=choki.gif>" , "<IMG SRC=pa.gif>");		#配列セット
   srand(time|$$);				#ランダマイズ
   $a=int(rand(3));				#0〜2の整数乱数取得
   $x="$a"."$_";

   $count[0]++;

   if    ($x=="00" || $x=="11" || $x=="22") {$output = "あいこ";}
   elsif ($x=="02" || $x=="10" || $x=="21") {
		$output = "あなたの勝ち";
		$count[1]++;
		}
   else                                     {
		$output = "CPUの勝ち";
		$count[2]++;
		}

   seek(FILE,0,0);		#ファイルポインタを先頭に戻す
   print FILE "$count[0]\n";	#ゲーム回数書き出し
   print FILE "$count[1]\n";	#あなたの勝数書き出し
   print FILE "$count[2]\n";	#CPUの勝数書き出し
}
flock(FILE,8);		#ロック解除
close(FILE);		#クローズ

print "Content-type: text/html\n\n";
$dummy=time;
print <<"EOF";
  <html><body TEXT="#FFFFFF" LINK="#00FFFF" VLINK="#FF00FF" ALINK="#FF0000" BGCOLOR="#000000">
  <center><h1>じゃんけんげーむ</h1></center><hr><br>
  <h2>●これまでの勝敗</h2>
  今まで$count[0]回じゃんけんしました<br><br>
  あなたの勝ち:$count[1]回<br>
  CPUの勝ち:$count[2]回<br>
  <h2>●じゃんけんしようよ</h2>
  
  CPUは:@jyan[$a] あなたは:@jyan[$_]<br><br>
  勝敗は :$output<br>
  <form action="jyankeng.cgi" method="GET">
  <input type=submit name="0" value=" ぐぅ ">
  <input type=submit name="1" value="ちょき">
  <input type=submit name="2" value=" ぱぁ ">
  <input type=hidden name="$dummy">
  </form><br>
  <a href=jyankeng.htm>前のページに戻る</a>
  </body></html>
EOF

exit;



Return IndexPage