PHPでペルソナジェネレーターを制作しました。
https://practice.michiweb.net/game/persona/
年齢、職業、性格をランダムで表示して、「もう一回」ボタンを押すと、作りなおしてくれます。
使用したPHP
array_rand( 配列 )
配列要素のキーを、ランダムに取得する
1 2 3 4 5 |
<?php $random = array('あ', 'い', 'う', 'え', 'お'); $key = array_rand($random); echo $random[$key]; ?> |
mt_rand関数
1 2 |
int mt_rand ( void )//乱数を生成 int mt_rand ( int $min , int $max )//$minから$maxの間で、乱数を生成 |
制作の流れ
・年齢をランダムで決定
・性別をランダムで決定
・職業、性格のリストを作成
・職業、性格をランダムで決定
・htmlで表示させる
・「もう一回」ボタンを作成する
年齢をランダムで決定
1 2 3 4 5 |
function random($min, $max)//random関数を作成して、引数1(最低年齢)、引数2(最高年齢)を設定する { return mt_rand($min, $max);//引数1から引数2までの間で乱数を発生させ、その値を返り値にする } $age = random(20, 64);//数字をランダムで排出(20才-64才) |
htmlで表示させる
1 |
<p><?php echo $age ?>歳</p> |
性別をランダムで決定
1 2 |
$sex_array = array("男性", "女性");//配列からランダムに値を1つだけ取得 $sex = array_rand($sex_array);// 男性/女性のどれか |
職業、性格のリストを作成
list1.txt(職業)を作成
1 2 3 4 5 6 7 8 9 10 |
臨床心理士 パティシエ プロスポーツ選手 ファッションデザイナー 薬剤師 医師 美容師 保育士 建築家 ・・・・・ |
list2.txt(性格1)を作成
1 2 3 4 5 6 |
積極的 消極的 神経質 無神経 感情的 ・・・・ |
list3.txt(性格2)を作成
1 2 3 4 5 |
早寝早起き 遅寝遅起き 寝相が悪い 昼夜逆転 ・・・・・ |
職業、性格をランダムで決定
1 2 3 4 5 6 7 8 |
//性格をランダムで決定 $job = explode("\n", file_get_contents('list1.txt'));//職業 $character1 = explode("\n", file_get_contents('list2.txt'));//性格1 $character2 = explode("\n", file_get_contents('list3.txt'));//性格2 shuffle($job); shuffle($character1); shuffle($character2); |
htmlで表示させる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<main> <h2>ペルソナジェネレーター</h2> <dl> <dt>年齢</dt> <dd><?php echo $age ?>歳</dd> <dt>性別</dt> <dd><?php echo $sex_array[$sex]; ?></dd> <dt>職業</dt> <dd><?php echo $job[0] ?></dd> <dt>性格1</dt> <dd><?php echo $character1[0] ?></dd> <dt>性格2</dt> <dd><?php echo $character2[0] ?></dd> </dl> </main> |
「もう一回」ボタンを作成する
1 |
<p class="flex-center"><input type="button" value="もう一回" onclick="window.location.reload();" /></p> |
CSSで装飾して、完成です。
https://pr.michiweb.net/game/persona/