php formを使って簡単なゲームを作る

uchiumiです。
今日のPHPはformを使った実習ということで、じゃんけんゲームと簡単なスロットゲームを作りました。

じゃんけんゲームを作る
まずはじめにじゃんけんゲームを作りました。
仕様は出す手を選びボタンを押すと、コンピュータと対戦した結果が表示されるというものです。
わかりにくいと評判のuchiumiのソースを晒すと、

<html xmlns="www.w3.org/html" xml:lang="ja" lang="ja">
<head>
<title>じゃんけんゲーム</title></head>
<body>
<p>
出す手を決めて下さい。
</p>
<form action="zyanken.php" method="post">
<p>
   <input type="radio" name="te" value="1" checked />グー<br />
   <input type="radio" name="te" value="2" />チョキ<br />
   <input type="radio" name="te" value="3" />パー<br />
   <input type="submit" name="submit" value="ポン!" />
</p>
</form>
<p>
<?php
$com = 0;
$pc = 0;
   if (isset($_POST["submit"])) {
     $com = rand(1,3);
     $pc = $_POST["te"];

     //勝ち負け判定!
       if (($com < $pc && ($pc - $com) != 2) || ($com - $pc) == 2) {
       echo "貴方は".kimeru($pc)."。<br />コンピュータは".kimeru($com).
               "。<br />なのであなたの負けです";
     } elseif ($com == $pc) {
       echo "貴方は".kimeru($pc)."。<br />コンピュータは".kimeru($com).
               "。<br />なのであいこです";
     } else {
       echo "貴方は".kimeru($pc)."。<br />コンピュータは".kimeru($com).
               "。<br />なのであなたの勝ちです";
     }

   }

function kimeru($te) {
  if ($te == 1) {
    return "グー";
  } elseif ($te == 2) {
    return "チョキ";
  } else {
    return "パー";
  }
}
?>

</p>
</body>
</html>

というような感じです。
最初のif文がわかりにくすぎてダメですね。
radioボタンの値変えたら変更が面倒くさくなるので、そこらへんも考慮して考えなくてはいけないなと思いました。

スロットゲームを作る
次にスロットゲームを作りました。
とりあえずの仕様は、ボタンを押してランダムにでてくる3つの数字がそろったらあたり判定を出すというものです。
またわかりにくいソースを晒すと、

<html xmlns="www.w3.org/html" xml:lang="ja" lang="ja">
<head>
<title>すろっと!</title></head>
<body>
<p>
あたるかな〜?
</p>
<form action="777.php" method="post">
<p>
      <input type="submit" name="submit" value="GO!" />
</p>
</form>
<br /><br />
<?php
   $line1 = array(0,1,2,3,4,5,6,7,8,9);
   $line2 = array(0,1,2,3,4,5,6,7,8,9);
   $line3 = array(0,1,2,3,4,5,6,7,8,9);

$lineban1 = 0;
$lineban2 = 0;
$lineban3 = 0;

   if (isset($_POST["submit"])) {
     $lineban1 = $line1[stop()];
     $lineban2 = $line2[stop()];
     $lineban3 = $line3[stop()];
     echo  $lineban1." ";
     echo  $lineban2." ";
     echo  $lineban3." ";

     if($lineban1 == $lineban2 && $lineban1 == $lineban3){
       echo "<br />あたり!";
     }

   }

function stop() {

  return rand(0,9);

}
?>

</body>
</html>

といった感じです。
配列で作ってループでまわした方がよかったかなと後で思ったりしました。

ちなみに両方、変数名については壊滅的にダメだと思っています。
ベストな名前をみつけるのが苦手で、ついローマ字にしてしまったり似た様な名前にしてしまうので、どうにかわかりやすい名前がつけられるようにしていきたいなと思いました。

またスロットゲームは1ラインだけでなく、3×3の方にも挑戦していたりするので、そちらもいずれ完成させたいなと思います。
次回はこれらのものに、お金を賭けて遊べるようにするやり方を学ぶということなので、次回の講習がとても楽しみです。

—-
(2008/05/27 18:45 hirafuji追記)
動画をご覧下さい〜!

part.1

part.2

コメントをどうぞ

名前: (Required)

eMail: (Required)

Website:

Comment:

Spam Protection by WP-SpamFree