どうも、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追記)
動画をご覧下さい!

by スタートアップ研修記 » php コーディング くじ引きをつくる 仕様変更, on 06.03.08 @ 9:33 PM
[...] 前回の授業のブログ↓ コーディング くじ引きをつくる [...]