"; print "コンピュータ"; if($start==1){ print "【親】"; } else{ print "【子】"; } print "

"; print_tranpu($com_tranpu[0]); ura(); print "
"; print "あなた"; if($start==0){ print "【親】"; } else{ print "【子】"; } print "

"; print_tranpu($you_tranpu[0]); print_tranpu($you_tranpu[1]); print ""; //データを送信する為のフォームを表示する print "
"; print "
"; print ""; print ""; $picture_all = count($picture); print ""; for($i=0;$i<$picture_all;$i++){ print ""; } $com_all = count($com_tranpu); print ""; for($i=0;$i<$com_all;$i++){ print ""; } $you_all = count($you_tranpu); print ""; for($i=0;$i<$you_all;$i++){ print ""; } print "
"; print "
"; print "
"; print ""; print ""; $picture_all = count($picture); print ""; for($i=0;$i<$picture_all;$i++){ print ""; } $com_all = count($com_tranpu); print ""; for($i=0;$i<$com_all;$i++){ print ""; } $you_all = count($you_tranpu); print ""; for($i=0;$i<$you_all;$i++){ print ""; } print "
"; print "
"; } /////////////////////////////////////// // もう1枚トランプを引く場合 // /////////////////////////////////////// if($select==1){ //どちらが親かのデータを元に戻す $start = $_POST['start']; //トランプの全てを元に戻す $picture_all = $_POST['picture_all']; for($i=0;$i<$picture_all;$i++){ $form_picture = "picture".$i; $picture[$i] = $_POST["$form_picture"]; } //コンピュータの手札を元に戻す $com_all = $_POST['com_all']; for($i=0;$i<$com_all;$i++){ $com_picture = "com_tranpu".$i; $com_tranpu[$i] = $_POST["$com_picture"]; } //ユーザの手札を元に戻す $you_all = $_POST['you_all']; for($i=0;$i<$you_all;$i++){ $you_picture = "you_tranpu".$i; $you_tranpu[$i] = $_POST["$you_picture"]; } //トランプを表示させる print "
"; //コンピュータのトランプを表示する print "コンピュータ"; if($start==1){ print "【親】"; } else{ print "【子】"; } print "

"; print_tranpu($com_tranpu[0]); //一枚目は表示しているので、残りは裏を表示する for($i=1;$i<$com_all;$i++){ ura(); } print "
"; //ユーザのトランプを表示する print "あなた"; if($start==0){ print "【親】"; } else{ print "【子】"; } print "

"; $you_tranpu[$you_all] = tranpu(); for($i=0;$i<$you_all+1;$i++){ print_tranpu($you_tranpu[$i]); } print "

>トランプを1枚引きました!
"; //合計点数を計算する $you_sum = cal_point($you_tranpu); $you_num = count($you_sum); for($i=0;$i<$you_num;$i++){ print ">合計点数は".$you_sum[$i]."です。
"; } //全ての合計が21を超えていないかを確認する。 $sum = check_21($you_sum); if($sum==1){ print ">おめでとうございます!21が出ました!
"; print "
"; print ""; print ""; print ""; $picture_all = count($picture); print ""; for($i=0;$i<$picture_all;$i++){ print ""; } $com_all = count($com_tranpu); print ""; for($i=0;$i<$com_all;$i++){ print ""; } $you_all = count($you_tranpu); print ""; for($i=0;$i<$you_all;$i++){ print ""; } print "
"; print "
"; exit; } else if($sum==2){ print ">22以上になりました。失格です!
"; print "
"; print ""; print ""; print ""; $picture_all = count($picture); print ""; for($i=0;$i<$picture_all;$i++){ print ""; } $com_all = count($com_tranpu); print ""; for($i=0;$i<$com_all;$i++){ print ""; } $you_all = count($you_tranpu); print ""; for($i=0;$i<$you_all;$i++){ print ""; } print "
"; print ""; exit; } //データを送信する為のフォームを表示する print "
"; print "
"; print ""; print ""; $picture_all = count($picture); print ""; for($i=0;$i<$picture_all;$i++){ print ""; } $com_all = count($com_tranpu); print ""; for($i=0;$i<$com_all;$i++){ print ""; } $you_all = count($you_tranpu); print ""; for($i=0;$i<$you_all;$i++){ print ""; } print "
"; print "
"; print "
"; print ""; print ""; $picture_all = count($picture); print ""; for($i=0;$i<$picture_all;$i++){ print ""; } $com_all = count($com_tranpu); print ""; for($i=0;$i<$com_all;$i++){ print ""; } $you_all = count($you_tranpu); print ""; for($i=0;$i<$you_all;$i++){ print ""; } print "
"; //データ送信フォームの終了 print "
"; print ""; } ////////////////////////////////////////// // トランプを引くのを止める場合 // ////////////////////////////////////////// if($select==2){ //どちらが親かのデータを元に戻す $start = $_POST['start']; //トランプの全てを元に戻す $picture_all = $_POST['picture_all']; for($i=0;$i<$picture_all;$i++){ $form_picture = "picture".$i; $picture[$i] = $_POST["$form_picture"]; } //コンピュータの手札を元に戻す $com_all = $_POST['com_all']; for($i=0;$i<$com_all;$i++){ $com_picture = "com_tranpu".$i; $com_tranpu[$i] = $_POST["$com_picture"]; } //ユーザの手札を元に戻す $you_all = $_POST['you_all']; for($i=0;$i<$you_all;$i++){ $you_picture = "you_tranpu".$i; $you_tranpu[$i] = $_POST["$you_picture"]; } //コンピュータが引く $com_flag = 1; //コンピュータが引き終わるまで繰り返す while($com_flag = 1){ //現在のポイント数を調べる $com_sum = cal_point($com_tranpu); //ポイントのMAXを調べる $com_max = cal_max($com_sum); //ポイントのMINを調べる $com_min = cal_min($com_sum); $com_num = check_21($com_sum); if($com_num==2){ $com_point = $com_min; break; } if($com_num==1){ $com_point = 21; break; } if($com_max>16 && $com_max<22){ $com_point = cal_spot($com_sum); $com_flag = 0; break; } $com_tranpu[$com_all] = tranpu(); $com_all++; $com_sum = cal_point($com_tranpu); //print "親:";print_r($com_sum);print "
"; } //トランプを表示させる print "
"; //コンピュータのトランプを表示する print "コンピュータ"; if($start==1){ print "【親】"; } else{ print "【子】"; } print "

"; //一枚目は表示しているので、残りは裏を表示する for($i=0;$i<$com_all;$i++){ print_tranpu($com_tranpu[$i]); } print "
"; //ユーザのトランプを表示する print "あなた"; if($start==0){ print "【親】"; } else{ print "【子】"; } print "

"; //一枚目は表示しているので、残りは裏を表示する for($i=0;$i<$you_all;$i++){ print_tranpu($you_tranpu[$i]); } $you_flag = check_21($tranpu); if($you_flag==1){ $you_point = 21; } else if($you_flag==2){ $you_sum = cal_point($you_tranpu); $you_point = cal_min($you_sum); } else{ $you_sum = cal_point($you_tranpu); $you_point = cal_max2($you_sum); } print "

"; print ">コンピュータのポイントは".$com_point."です。
"; print ">あなたのポイントは".$you_point."です。

"; //どちらが勝つか決める $win_flag=1; //両者が同一の時 if($you_point==$com_point){ if($start == 1){ //親が勝つ win("com"); } else{ //あなたが勝つ win("you"); } $win_flag=0; } //両方とも21を超える時 if($you_point>21 && $com_point>21 && $win_flag==1){ if($start == 1){ if($com_point<=$you_point){ //親が勝つ win("com"); } else{ //あなたが勝つ win("you"); } } else{ if($you_point<=$com_point){ //あなたが勝つ win("you"); } else{ //親が勝つ win("com"); } } $win_flag=0; } //どちらかが21を超える時 if($you_point>21 && $com_point<22 && $win_flag==1){ win("com"); $win_flag=0; } if($com_point>21 && $you_point<22 && $win_flag==1){ win("you"); $win_flag=0; } //両方とも21未満 if($you_point>$com_point && $com_point<22 && $you_point<22 && $win_flag==1){ win("you"); $win_flag=0; } if($com_point>$you_point && $com_point<22 && $you_point<22 && $win_flag==1){ win("com"); $win_flag=0; } print "
>もう一度する"; print "
"; } //トランプを決定させる function tranpu(){ global $picture; $all = count($picture); $flag = 1; while($flag==1){ list($msec,$sec)=split(' ',microtime()); mt_srand($msec*100000); $num = mt_rand(1,52); if(in_array($num,$picture)){ } else{ $flag=0; } } $picture[$all] = $num; return $num; } //特定範囲のポイントのMAXを返す function cal_spot($tranpu){ $num = count($tranpu); $max = 0; for($i=0;$i<$num;$i++){ if($max<$tranpu[$i] && $tranpu[$i]<22 && $tranpu[$i]>16){ $max = $tranpu[$i]; } } return $max; } //MAXのポイントを返す function cal_max($tranpu){ $num = count($tranpu); $max = 0; for($i=0;$i<$num;$i++){ if($max<$tranpu[$i]){ $max = $tranpu[$i]; } } return $max; } //22未満のMAXのポイントを返す function cal_max2($tranpu){ $num = count($tranpu); $max = 0; for($i=0;$i<$num;$i++){ if($max<$tranpu[$i] && $tranpu[$i]<22){ $max = $tranpu[$i]; } } return $max; } //MINのポイントを返す function cal_min($tranpu){ $num = count($tranpu); $min = $tranpu[0]; for($i=0;$i<$num;$i++){ if($min>$tranpu[$i]){ $min = $tranpu[$i]; } } return $min; } //合計ポイントを計算する function cal_point($tranpu){ $score = 0; $all_score = array(); $all_score[0] = 0; $num = count($tranpu); for($i=0;$i<$num;$i++){ $point = $tranpu[$i]%13; if($point==0 || $point>9){ $point = 10; } if($point==1){ $patern = count($all_score); for($j=0;$j<$patern;$j++){ $all_score[$j+$patern] = $all_score[$j] + 11; $all_score[$j] = $all_score[$j] + 1; } } else{ //全ての合計ポイントに現在のポイントを足す $patern = count($all_score); for($j=0;$j<$patern;$j++){ $all_score[$j] = $all_score[$j] + $point; } } } return $all_score; } //合計点数による場合わけをする function check_21($tranpu){ $num = count($tranpu); $check = 0; for($i=0;$i<$num;$i++){ $point = $tranpu[$i]; if($point==21){ //21がある return 1; } if($point>21){ $check++; } else{ } } if($check==$num){ //数値オーバー return 2; } else{ //21未満がある return 0; } } //トランプの画像を表示させる function print_tranpu($tranpu){ $kind = $tranpu%13; $path = ""; if($tranpu > 0 && $tranpu<=13){ $path = "./tranpu/heart/"; } else if($tranpu >= 14 && $tranpu<=26){ $path = "./tranpu/diya/"; } else if($tranpu >= 27 && $tranpu<=39){ $path = "./tranpu/spade/"; } else if($tranpu >= 40 && $tranpu <=52){ $path = "./tranpu/clover/"; } if($kind == 0){ $kind = 13; } $path = $path . $kind . ".gif"; print ""; } //トランプの裏画像を表示させる function ura(){ $path = "./tranpu/other/ura.gif"; print ""; } function win($user){ if($user=="com"){ print ">コンピュータが勝利です!
"; } else{ print ">あなたが勝利です!
"; } } ?>