コーディング くじ引きを作る

どうも、irisawaです。
今日のコーディングの授業では、くじ引きの実装を行いました。

以下、内容になります。

今回出されたくじ引きプログラムのお題は、以下の通りです。

  • 入力フォームで番号入力し、ボタンを押すと判定
  • 当たりくじは以下の5つ。それ以外は入力間違いとして処理する。
    • 11111
    • 22222
    • 33333
    • 44444
    • 55555
  • 当たりくじを入力したら、1等から5等までをランダムで返す
  • 等級に応じたメッセージを生成し、それを表示

まずはコードを分かりやすくする為に、処理ごとに関数を作成してみました。
また、前回の時間で習った関数ごとにPHPファイルを作る方法で作成しました。

  • 当たりくじかどうかを判定 → validate()をvalidate.phpに作成
  • 1等から5等までをランダムで返す → draw()をdraw.phpに作成
  • 等級に応じたメッセージを生成し返す → getMessage()をgetMessage.phpに作成

以上を踏まえて出来上がった関数ごとのPHPが、以下のようになります。

【validate.php】

<?php

function validate($number){

switch ($number) {

//$numberが当たりくじであればtrueを返す、それ以外ならfalse

case "11111":

case "22222":

case "33333":

case "44444":

case "55555":

return true;

default:

return false;

}

}

?>

【draw.php】

<?php

function draw(){

//1等から5等までをランダムに返す

return rand(1,5);

}

?>

【getMessage.php】

<?php

function getMessage($prize){

switch ($prize){

//等級に応じたメッセージを返す

case 1:

return "<h1>1等おめでとう!</h1>

<p>流行りまくりのWindows Vista搭載パソコンです!!やったね!</p>";

case 2:

return "<h1>2等おめでとう!</h1><p>今流行りのWiiです!!</p>";

case 3:

return "<h1>3等おめでとう!</h1><p>地デジ対応薄型ハイビジョンテレビです!</p>";

case 4:

return "<h1>4等になります。</h1><p>トイレットペーバー3ヶ月分です。</p>";

case 5:

return "<h1>5等です。</h1><p>ポケットティッシュ一年分です。</p>";

}

}

?>

これらを利用して作成したPHPは、次の通りです。
【lot.php】

<?php

require "validate.php";

require "getMessage.php";

require "draw.php";

?><html>

<head>

<title>くじ引き</title>

</head>

<body>

<?php

if(isset($_POST["button"])){

$number = $_POST["number"];

if (validate($number)) {

$prize = draw();

$message = getMessage($prize);

echo $message;

}else{

echo "<p>入力された番号が間違っています。</p>";

}

}

?>

<form action='lot.php' method='post'>

<p><input type='text' name='number' /></p>

<p><input type='submit' name='button' value='当たるかな?' /></p>

</form>

</body>

</html>

今回は初めて関数ごとにPHPファイルを作成する方法だったので、少し戸惑いましたが断然こっちの方がコードが読みすいので、これからはこの方法でやっていきたいと思います。

—-
(2008/06/10 19:05 hirafuji追記)
動画をご覧下さい!

1 件のコメント so far »

  1. by スタートアップ研修記 » php コーディング くじ引きをつくる 仕様変更, on 06.03.08 @ 9:33 PM

     

    [...] 前回の授業のブログ↓ コーディング くじ引きをつくる [...]

Comment RSS · TrackBack URI

コメントをどうぞ

名前: (Required)

eMail: (Required)

Website:

Comment:

Spam Protection by WP-SpamFree