やること
- 「ズン」「ドコ」をひとつずつ出力
- 「ズンズンズンズンドコ」が出力されたタイミングで「キヨシ₍₍(ง˘ω˘)ว⁾⁾」
- 「キヨシ₍₍(ง˘ω˘)ว⁾⁾」コールができなかったら「ズンドコできませんでした...」と出力
やったこと
下記コードのとおりですが、一応..。
- 「ズン」「ドコ」をそれぞれ扱うために配列にイン
- 「ズン」「ドコ」の文字列を格納するための変数を初期化
- ループ準備
- 配列から「ズン」「ドコ」をランダムで出力するために、配列用の添字を
random_int()
で出力 - 文字格納用の変数に「ズン」「ドコ」を連結格納
- 「ズン」「ドコ」を出力
- 条件分岐 - 連結格納された変数内に「ズンズンズンズンドコ」があれば「キヨシ₍₍(ง˘ω˘)ว⁾⁾」コールの後、ループから抜ける
- ループ終了 - ズンドコできませんでした...。
書いたコード
<?php
$arrs = ['ズン', 'ドコ'];
$zundoko_arrs = null;
for($j=0; $j<=20; $j++) { // ズンドコチャンスは4回
$random = random_int(0, count($arrs)-1);
$random_zundoko = $arrs[$random];
$zundoko_arrs .= $random_zundoko;
echo $random_zundoko . "\n";
// ここからズンドコ
if(strpos($zundoko_arrs, 'ズンズンズンズンドコ') !== false) {
echo 'キヨシ!₍₍(ง˘ω˘)ว⁾⁾';
break;
}
}
// ループがまわり終わったのにズンドコが発動できなかった
if(strpos($zundoko_arrs, 'ズンズンズンズンドコ') === false) {
echo 'ズンドコできませんでした...';
}
※コードと実行結果はこっちでも見れます。(paiza.ioのページが開きます)
https://paiza.io/projects/aW6NgnfrYCfFYdJwBL4wMQ
コード中で強引さを感じるところ
条件分岐中、strpos()
で「ズンズンズンズンドコ」を直に指定している部分です。。
これが、『「ズン」が4回 + 「ドコ」が1回』並んだら、みたいな条件分岐の書き方じゃないと良くないだろうな...(なんでかは言葉にできないんですが、、)と思っています。
参考
▼rubyでユニバーサルズンドコキヨシ
▼array_randやshuffleの乱択精度を改善しよう
▼PHP: random_int - Manual
₍₍(ง˘ω˘)ว⁾⁾
環境 - PHP7を使用