#!/usr/local/bin/perl ############################### # ココのジャンケン・ポン # 2002.1.16 # Coco Sekiguchi ############################### ############################### #乱数を使用してジャンケンをします # ############################### #FORMからの文字を取得 require 'stdin.txt'; ############################### #初期設定 @jyanken = ("グー", "チョキ", "パー"); $aite_flg = 0;#START時の設定 $images1 = "../images/sancoco_l.jpg";#INPUT画面の写真 $images2 = "../images/gu_l.gif";#グーの画像 $images3 = "../images/cyoki_l.gif";#チョキの画像 $images4 = "../images/pa_l.gif";#パーの画像 ############################### #ジャンケン選択の取得 $jyan = $FORM{'jyan'};#相手が選択したジャンケン $kaisu = $FORM{'kai'};#何回目のジャンケンか @coco_jyanken = $FORM{'c'};#ココのジャンケン内容 @aite_jyanken = $FORM{'a'};#相手のジャンケン内容 $coco_kachi = $FORM{'ck'};#ココの勝ち数 $aite_kachi = $FORM{'ak'};#相手の勝ち数 ############################### #HTMLタイトル表示 print "Content-type: text/html\n\n"; $title = "ココとジャンケン・ポン"; require './heder.txt'; print "
"; print "

ココとジャンケン・ポン

"; print "
"; ############################### #ジャンケン・メイン処理 &kaisu_handan;#5回戦のうち何回目かの判断ルーチンへ &kaisu_chk;#回数の判断ルーチンへ &input_rtn;#対戦相手のジャンケン入力ルーチンへ print qq|
|; &kaisu_disp;#回数毎の表示ルーチンへ print qq|

このページの解説はこちら→

|; require './fotter.txt'; exit; ############################### #ゲーム開始前の判断&経過表示 sub kaisu_handan{ if ($kaisu eq ""){#ゲーム開始前処理 $kaisu = 0;#アイコを除いた対戦数 $coco_kachi = 0;#ココの勝ち数 $aite_kachi = 0;#あなたの勝ち数 } else { &get_rand;#乱数発生のサブルーチンへ &jyanken_handan;#ジャンケン判断のサブルーチンへ } } ############################### #回数による表示の設定 sub kaisu_chk{ if ($kaisu < 1 and $aiko ne 1) {#ジャンケン開始以前 $disp_msg1 = "それでは第一回戦です。
5回戦ですからね!"; } elsif ($jyan eq "") {#グー・チョキ・パー無選択の処理 $disp_msg1 = "

グー・チョキ・パーを選んでから押してください

"; } } ############################### #回数による表示 sub kaisu_disp{ if ($kaisu eq 0 and $aiko ne 1 or $jyan eq "") { print $disp_msg1; } elsif ($aiko ne 1) { print "第$kaisu戦は"; &printm; print "\n
", $disp_msg1; } elsif ($aiko eq 1) { &printm; print "\n
", $disp_msg1; } print "
\n
$disp_msg2
\n"; if ($kaisu eq 5){ print "
5回戦終了です。結果はココの$coco_kachi勝$aite_kachi負です。
\n"; if ($coco_kachi > $aite_kachi){ print qq| 可哀想だからもう一回遊んであげようか? |; }else{ print qq| 悔しい!! お願い!もう一回 |; } } } ############################### #対戦相手のジャンケン入力・対戦経過置換え・表示 sub input_rtn{ #対戦相手のジャンケン入力 print qq|
|; if ($kaisu > 4){ print qq|


グー
チョキ
パー
|; } else { print qq|
|; } #対戦経過置換え・表示 $kaisen = length($aite_jyanken[0]); for ($i = 0; $i < $kaisen; $i++){ $aite[$i] = substr(@aite_jyanken[0],$i,1); $coco[$i] = substr(@coco_jyanken[0],$i,1); if ($aite[$i] eq 0 and $coco[$i] eq 1) { $aite[$i] = "$aite[$i]"; $coco[$i] = "$coco[$i]"; } elsif ($aite[$i] eq 1 and $coco[$i] eq 2) { $aite[$i] = "$aite[$i]"; $coco[$i] = "$coco[$i]"; } elsif ($aite[$i] eq 2 and $coco[$i] eq 0) { $aite[$i] = "$aite[$i]"; $coco[$i] = "$coco[$i]"; } else { $coco[$i] = "$coco[$i]"; $aite[$i] = "$aite[$i]"; } $aite[$i] =~ s/0//g; $aite[$i] =~ s/1//g; $aite[$i] =~ s/2//g; $coco[$i] =~ s/0//g; $coco[$i] =~ s/1//g; $coco[$i] =~ s/2//g; } #対戦経過表示 print qq| $aite[0]$aite[1]$aite[2]$aite[3]$aite[4] $coco[0]$coco[1]$coco[2]$coco[3]$coco[4]
あなた
ココ

|; } ############################### #ジャンケン判断 sub jyanken_handan{ $kaisu++; if ($jyan eq ""){ $disp_msg2 = "最初はグー"; $kaisu--; } elsif ($jyan == $coco_jyan){ $disp_msg2 = "アイコ!"; $kaisu--; $aiko = 1; } elsif ($jyan == 0 and $coco_jyan == 1){ $disp_msg2 = "残念!"; $aite_kachi++; } elsif ($jyan == 0 and $coco_jyan == 2){ $disp_msg2 = "ココの勝ち!"; $coco_kachi++; } elsif ($jyan == 1 and $coco_jyan == 0){ $disp_msg2 = "やったね!"; $coco_kachi++; } elsif ($jyan == 1 and $coco_jyan == 2){ $disp_msg2 = "悔しい!"; $aite_kachi++; } elsif ($jyan == 2 and $coco_jyan == 0){ $disp_msg2 = "負けた!"; $aite_kachi++; } elsif ($jyan == 2 and $coco_jyan == 1){ $disp_msg2 = "ココ強い!!"; $coco_kachi++; } if ($aiko ne 1 and $jyan ne "") { @coco_jyanken = "@coco_jyanken" . "$coco_jyan"; @aite_jyanken = "@aite_jyanken" . "$jyan"; } } ################################### #0から2までの乱数発生 ################################### sub get_rand { $coco_jyan = int(rand(3)); } ################################### #ジャンケン表示 ################################### sub printm { print "ココが["; print $jyanken[$coco_jyan]; print "]で、あなたは["; print $jyanken[$jyan]; print "]ですから・・・"; }