ズンドコジェネレータで、普通に実装。
<?php
const ZUN = 'ズン';
const DOKO = 'ドコ';
$generator = function () {
$zundoko = [ZUN, DOKO];
for (;;) {
yield $zundoko[mt_rand(0, 1)];
}
};
$actual = [];
$expected = [ZUN, ZUN, ZUN, ZUN, DOKO];
foreach ($generator() as $v) {
echo $v;
$actual[] = $v;
if (count($actual) > 5) {
array_shift($actual);
}
if ($actual === $expected) {
break;
}
}
echo 'キ・ヨ・シ!';
実行結果