PHPでナンバーゲームを作成しよう

PHP

1-99の中に正解番号が隠れている。これをヒントをもとに見つけ出すゲームを作成しよう。

実行例

①初期画面

②数字を予想して入力する

③結果が出力される(もっと上というヒントがでている)

④ヒントをもとに数字を入力

⑤結果が出力される(もっと大きいようだ)

⑥この作業を正解がでるまで繰り返す(Bingoと出れば正解。新しい問題のリンクが表示される)

⑦New Gameを押すと最初から

実際に遊んで見る

以下のリンクから実際に遊ぶことができる。
https://joytas.net/php/numbergame.php

作成例

<?php
//セッション開始
session_start();
//ポストデータが飛んできているか
if(count($_POST)>0){
  $_SESSION['nums'][]=(int)$_POST['num'];

}else{
  //Get通信時の処理
  //セッションに正解番号を詰める
  $_SESSION['bingo']=mt_rand(1,99);
  //ユーザーが入力した値を格納していく配列を初期化
  $_SESSION['nums']=[];
}
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>NumberGame</title>
</head>
<body>
<h1>NumberGame!</h1>
<h2>1-99の数字を当ててね</h2>
<p>いくつかな?</p>
<form method="post">
  <p>
  <!-- autofocus を付けておくと自動的にフォームがアクティブになる(すぐに入力できる) -->
  <input type="number" min="1" max="99" name="num" autofocus>
  <input type="submit" name="送信">
  </p>
</form>
<?php if(count($_SESSION['nums'])>0)://入力された数があるか?>
  <table border="1">
    <?php for($i=0;$i<count($_SESSION['nums']);$i++)://入力データ数の分、回すループ?>
      <?php
      //データの取り出し
      $user=$_SESSION['nums'][$i];
      //正解番号
      $bingo=$_SESSION['bingo'];
      //ネストさせた三項演算子で結果文字を作成
      $result=$user==$bingo?"Bingo!!":($user<$bingo? "Higher!":"Lower!");
      ?>
      <tr>
        <td><?=$i+1?></td>
        <td><?=$_SESSION['nums'][$i]?></td>
        <td><?=$result?></td>
      </tr>
    <?php endfor;?>
  </table>
  <?php if($result=='Bingo!!'):?>
  <p><a href="">New Game</a></p>
  <?php endif;?>
<?php endif;?>
</body>
</html>
PHP
スポンサーリンク
シェアする
mjpurinをフォローする
ジョイタスネット

コメント

タイトルとURLをコピーしました