●はじめに
やはりジャンケンは、手が出てこないとものたりません。そこで、グラフィックをつけてみました。スクリプトは、ほとんど同じなのです。
●実行例
じゃんけんをするならここをクリック
●導入手順
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;