数字当てプログラム

HOME   >   数字当てプログラム>   StepByStep

数字当てプログラム(画面遷移版)のはじめに

1)このStepByStep方式による実践型プログラミング演習を開始する前に以下の内容に目を通してください。
  ・数字当てゲーム(画面遷移版)の概要
2)StepByStepプログラミング演習では、ステップ順に進めることをお勧めします。
3)各ステップが何を求めているか(仕様)をしっかり理解した上、開始してください。
【使用方法】
・ここをクリックすると、以下の全Stepを開いたり閉じたりします。
  [Click here to Open/Close for all steps]
・以下のStepタイトルをクリックすると、そのStepを開いたり閉じたりします。

Eclipseディレクトリ準備

  • Eclipseを起動します。
  • PHPプロジェクトを作成します。
    プロジェクト名は「php_名字のローマ字」とします。
    名字が「神田」の場合は「php_kanda」となります。
    すでに同名のプロジェクトがある場合はスキップします。
  • フォルダを作成します。 フォルダ名は、「kandait_exercise」とします。
    すでに同名のフォルダがある場合はスキップします。
  • フォルダを作成します。
    フォルダ名は、「number_hit」とします。
    すでに同名のフォルダがある場合はスキップします。

Step1:入力フォームを作成する

Stepの概要

  予想数を入力するためのフォーム画面を作成します。

Stepの前提条件

  当講座の「PHP入門 9章 条件分岐」を受講済、または同等の知識をお持ちの方。

Stepの目的

  フォーム画面の部品を利用して画面を作成し、データの送信方法を理解します。

Stepのキーワード

  フォーム部品(フォームタグ、テキストボックス、実行ボタン)

Stepの仕様

  1) 以下のメッセージ及び、部品を配置した入力フォームを作成する。
      メッセージ:「0から9までの予想数を入力して下さい」
      部品:「テキストボックス」、「実行ボタン」
      ※Step1の時点では確認画面がないため実行ボタンを押すとエラーとなる。

  2) 入力された予想数は「GuessNumResultS01.php」へPOST送信する。

Stepの手順

  1) PHPファイルを作成する
      ・Eclipse準備で作成した「number_hit」フォルダの下に
      「GuessNumFormS01.php」ファイルを新規作成する。


  2) 「Stepの仕様」を参考にして「ステップの実行結果」のようになるプログラムを
     1)で作成した「GuessNumFormS01.php」に作成する。

  3) 動作を確認し作成物を提出する。

    【課題提出方法】
    ①「php_XXXXX(ご自分のプロジェクトフォルダー)」 をコピーしデスクトップに貼り付けます。


    ②「php_XXXXX(ご自分のプロジェクトフォルダー)」 をzip形式に圧縮します。


    ③zipファイルが出来たら、提出物は完成です。


    ④受講管理システムの「講座学習ガイド」画面にある「提出」ボタンから提出を行います。


Stepの実行結果

  【実行URL】
  http://localhost/php_xxxxxx/kandait_exercise/number_hit/GuessNumFormS01.php
  ※xxxxxxの部分は名字です。

  【実行結果】

StepのHINT(How to Program)

  1) データの送信にはFormタグを使用し、method属性にPOSTを設定します。

  2) テキストボックスのname属性は「player_num」とします。

  3) 結果表示ボタンのtype属性をsubmitとし、結果表示ボタンをクリックすることによりデータを送信します。

  4) 送信先は「GuessNumResultS01.php」とします。
 <form action="./GuessNumResultS01.php" method="POST">
   0から9までの数値を入力して下さい。:<input type="text" name="player_num"><br>
   <input type="submit" value="結果表示">
 </form>

Step2:別画面に予想数と正解数を表示する

Stepの概要

  入力された予想数とランダムに生成された正解数を表示する画面を作成します。

Stepの前提条件

  Step1の提出物を当スクールに提出し終わっていること。

Stepの目的

  入力フォームから送信されたデータの取得方法を理解します。
  ランダムな数値を生成する「mt_rand関数」の利用方法を理解します。

Stepのキーワード

  スーパーグローバル変数($_POST)
  mt_rand関数

Stepの仕様

  【GuessNumFormS02.php】
    1) 入力データの送信先を「GuessNumResultS02.php」とする。

  【GuessNumResultS02.php】
    1) 入力フォームから送信された予想数を取得し変数に格納します。
    2) 0から9までのランダムな正解数を生成し変数に格納します。
    3) 予想数、正解数を画面に表示します。

Stepの手順

  1) PHPファイルを作成する
      ・Eclipse準備で作成した「number_hit」フォルダの下に
      「GuessNumFormS01.php」ファイルをコピーして「GuessNumFormS02.php」ファイルを作成する。
      また、「GuessNumResultS02.php」ファイルを新規作成する。


  2) 「Stepの仕様」を参考にして「ステップの実行結果」のようになるプログラムを
     1)で作成した「GuessNumFormS02.php」「GuessNumResultS02.php」に作成する。

  3) 動作を確認し作成物を提出する。
     提出方法はStep1の「ステップの手順」を参考にしてください。

Stepの実行結果

  【実行URL】
  http://localhost/php_xxxxxx/kandait_exercise/number_hit/GuessNumFormS02.php
  ※xxxxxxの部分は名字です。

  【実行結果】

StepのHINT(How to Program)

  1) 送信されたデータは、「$_POST["player_num"]」で受け取ります。

  2) 受け取ったデータは、変数「$playerNum」に格納します。
 $playerNum = $_POST['player_num'];

  3) 0から9までのランダムな正解数を生成します。
     ランダムな数字を生成するには、PHPにあらかじめ用意されているmt_rand()関数を使用します。
     mt_rand()関数は第1引数から第2引数の間のランダムな整数を返します。

  4) 生成された正解数は、変数「$answerNum」に格納します。
 $answerNum = mt_rand(0,9);

  5) 変数に格納した予想数と正解数を画面に表示します。
 <?php
   echo "予想数:".$playerNum."<br>¥n";
   echo "正解数:".$answerNum."<br>¥n";
 ?>

Step3:予想数と正解数を比較しメッセージを表示する

Stepの概要

  入力された予想数とランダムに生成された正解数を比較しメッセージを表示します。

Stepの前提条件

  Step2の提出物を当スクールに提出し終わっていること。

Stepの目的

  if~if else文と比較演算子を利用し、判定を行う処理の流れを理解します。

Stepのキーワード

  if~if else文
  比較演算子

Stepの仕様

  【GuessNumFormS03.php】
    1) 入力データの送信先を「GuessNumResultS03.php」とする。

  【GuessNumResultS03.php】
    1) 条件にあったメッセージを変数に格納し表示する。
    2) 正解数が予想数より小さい場合、「正解数は入力数より小さいです。」とメッセージを出力する。
    3) 正解数が予想数より大きい場合、「正解数は入力数より大きいです。」とメッセージを出力する。
    4) 正解数と予想数が同じ場合、「!!大当たり!!」とメッセージを出力する。

Stepの手順

  1) PHPファイルを作成する
      ・Eclipse準備で作成した「number_hit」フォルダの下に
      「GuessNumFormS02.php」ファイルをコピーして「GuessNumFormS03.php」ファイルを作成する。
      また、「GuessNumResultS02.php」ファイルをコピーして「GuessNumResultS03.phpファイルを作成する。


  2) 「Stepの仕様」を参考にして「ステップの実行結果」のようになるプログラムを
     1)で作成した「GuessNumFormS03.php」「GuessNumResultS03.php」に作成する。

  3) 動作を確認し作成物を提出する。
     提出方法はStep1の「ステップの手順」を参考にしてください。

Stepの実行結果

  【実行URL】
  http://localhost/php_xxxxxx/kandait_exercise/number_hit/GuessNumFormS03.php
  ※xxxxxxの部分は名字です。

  【実行結果:正解数が予想数より小さい場合】

  【実行結果:正解数が予想数より大きい場合】

  【実行結果:正解の場合】

StepのHINT(How to Program)

  1) 正解数と予想数の比較はif文を利用します。
     「$playerNum > $answerNum」の場合は「正解数は入力数より小さいです。」のメッセージを変数に格納します。
     「$playerNum < $answerNum」の場合は「正解数は入力数より大きいです。」のメッセージを変数に格納します。
     「$playerNum == $answerNum」の場合は「!!大当たり!!」のメッセージを変数に格納します。
 $msg = "正解数は".$playerNum."より大きいです。";

  2) 変数に格納したメッセージを画面に表示します。
 echo $msg."<br>¥n";

Step4:「再挑戦」ボタンを設置する

Stepの概要

  再挑戦ボタンを設置し、ゲームに再挑戦できるようにします。

Stepの前提条件

  Step3の提出物を当スクールに提出し終わっていること。

Stepの目的

  フォーム画面の部品を設置し部品の利用方法を理解します。

Stepのキーワード

  フォーム部品(フォームタグ、実行ボタン)

Stepの仕様

  【GuessNumFormS04.php】
    1) 入力データの送信先を「GuessNumResultS04.php」とする。

  【GuessNumResultS04.php】
    1) メッセージの下部に「再挑戦」ボタンを設置し、「GuessNumFormS04.php」へ画面遷移する。

Stepの手順

  1) PHPファイルを作成する
      ・Eclipse準備で作成した「number_hit」フォルダの下に
      「GuessNumFormS03.php」ファイルをコピーして「GuessNumFormS04.php」ファイルを作成する。
      また、「GuessNumResultS03.php」ファイルをコピーして「GuessNumResultS04.phpファイルを作成する。


  2) 「Stepの仕様」を参考にして「ステップの実行結果」のようになるプログラムを
     1)で作成した「GuessNumFormS04.php」「GuessNumResultS04.php」に作成する。

  3) 動作を確認し作成物を提出する。
     提出方法はStep1の「ステップの手順」を参考にしてください。

Stepの実行結果

  【実行URL】
  http://localhost/php_xxxxxx/kandait_exercise/number_hit/GuessNumFormS04.php
  ※xxxxxxの部分は名字です。

  【実行結果】

StepのHINT(How to Program)

  1) 画面遷移にはFormタグを使用します。
  2) 再挑戦ボタンのtype属性をsubmitとし、再挑戦ボタンをクリックすることにより画面遷移します。
  3) 送信先は「GuessNumFormS04.php」とします。
 <form action="./GuessNumFormS04.php" method="POST">
   <input type="submit" value="再挑戦">
 </form>

Step5:予想数が範囲外の場合の処理を追加する

Stepの概要

  入力した予想数が0から9の範囲以外の数字の場合、エラーメッセージを表示します。

Stepの前提条件

  Step4の提出物を当スクールに提出し終わっていること。

Stepの目的

  if~if else文の条件を追加し、エラー処理の流れを理解します。

Stepのキーワード

  if~if else文
  比較演算子

Stepの仕様

  【GuessNumFormS05.php】
    1) 入力データの送信先を「GuessNumResultS05.php」とする。

  【GuessNumResultS05.php】
    1) 入力された数値が0より小さいか10以上の場合、
       「エラー!!0から9の数字ではありません。」とメッセージを出力する。
    2) 再挑戦ボタンの遷移先を「GuessNumFormS05.php」とする。

Stepの手順

  1) PHPファイルを作成する
      ・Eclipse準備で作成した「number_hit」フォルダの下に
      「GuessNumFormS04.php」ファイルをコピーして「GuessNumFormS05.php」ファイルを作成する。
      また、「GuessNumResultS04.php」ファイルをコピーして「GuessNumResultS05.phpファイルを作成する。


  2) 「Stepの仕様」を参考にして「ステップの実行結果」のようになるプログラムを
     1)で作成した「GuessNumFormS05.php」「GuessNumResultS05.php」に作成する。

  3) 動作を確認し作成物を提出する。
     提出方法はStep1の「ステップの手順」を参考にしてください。

Stepの実行結果

  【実行URL】
  http://localhost/php_xxxxxx/kandait_exercise/number_hit/GuessNumFormS05.php
  ※xxxxxxの部分は名字です。

  【実行結果】

StepのHINT(How to Program)

  1) 正解数と予想数の比較を行う前に、範囲内かどうかの条件を追加します。
 if($playerNum < 0 || $playerNum > 9){
   $msg = "エラー!!0から9の数字ではありません。";
 }else if($playerNum > $answerNum){
   …
   間省略
   …
 }

Step6:予想数が空白の場合の処理を追加する

Stepの概要

  予想数に何も入力しなかった場合、エラーメッセージを表示します。

Stepの前提条件

  Step5の提出物を当スクールに提出し終わっていること。

Stepの目的

  if~if else文の条件を追加し、エラー処理の流れを理解します。

Stepのキーワード

  if~if else文
  比較演算子

Stepの仕様

  【GuessNumFormS06.php】
    1) 入力データの送信先を「GuessNumResultS06.php」とする。

  【GuessNumResultS06.php】
    1) 予想数に何も入力されなかった場合、「エラー!!何も入力されていません。」とメッセージを出力する。
    2) 再挑戦ボタンの遷移先を「GuessNumFormS06.php」とする。

Stepの手順

  1) PHPファイルを作成する
      ・Eclipse準備で作成した「number_hit」フォルダの下に
      「GuessNumFormS05.php」ファイルをコピーして「GuessNumFormS06.php」ファイルを作成する。
      また、「GuessNumResultS05.php」ファイルをコピーして「GuessNumResultS06.phpファイルを作成する。


  2) 「Stepの仕様」を参考にして「ステップの実行結果」のようになるプログラムを
     1)で作成した「GuessNumFormS06.php」「GuessNumResultS06.php」に作成する。

  3) 動作を確認し作成物を提出する。
     提出方法はStep1の「ステップの手順」を参考にしてください。

Stepの実行結果

  【実行URL】
  http://localhost/php_xxxxxx/kandait_exercise/number_hit/GuessNumFormS06.php
  ※xxxxxxの部分は名字です。

  【実行結果】

StepのHINT(How to Program)

  1) 範囲内かどうかの比較を行う前に、空白かどうかの条件を追加します。
 if($playerNum == ""){
   $msg = "エラー!!何も入力されていません。";
 }else if($playerNum < 0 || $playerNum > 9){
   …
   間省略
   …
 }