ねぼすけ信号係で試した「片側だけ止める理由」

両方を青にすると車は流れる。でも人が渡れない。両方を赤にすると渡れるが、車がたまる。Pyxel005では、その間に「片側のバスだけを止めて、もう一方の小型車を通す」選択を作りました。

AとBは同方向の二車線で、車同士は衝突しません。青から赤にしても、停止線を越えた車は進み続けます。小型車は0.7秒、バスは2.2秒。両赤かつ通過中の車がなくなったら横断。横断中の青操作は予約になり、渡り終わってから発進準備に入ります。事故を見せるための意地悪な入力判定は置いていません。

技術の中心は、車線ごとのFIFOキューと時刻付き到着イベント、発進・通過・横断の状態分離です。描画から独立したモデルを30Hzで進め、車両数が保存されること、横断中に車が入らないこと、予約解除と再予約を検査しました。全3状況の成功方策、バスの退出待ち、入口7台の猶予など11試験が通っています。

最初の方策比較では、片側停止と同時停止に期待した差がありませんでした。そこで最終版はBの歩行者到着だけを1秒から3.8秒に変更し、元のモデルも比較用に残しました。AのバスとBの小型車が来るのは3秒です。

Aを2.8秒、Bを3.2秒で赤にすると、人待ち0秒、車待ち合計18.57秒。両方を2.8秒で止めると、人待ちは同じ0秒でも車待ちは22.73秒。両方3.2秒ならバスが先に入り、人は1.4秒待つ一方、車待ちは13.30秒へ減ります。これは一つの万能正解を作る調整ではなく、誰の待ちを減らしたいかを変えられる調整です。合算点で優劣を決めず、車と人の結果を並べます。

Cでは2秒と4秒に二組が到着します。一組ずつ早く渡すと人待ちは小さく、まとめると車待ちと切替回数が減ります。固定周期の交互操作でも安全にクリアできる場合はあり、それを後づけの罰で禁止しません。予告を見て変える操作が、自分にとって気持ちよい結果へつながるかが次の課題です。

6秒先の到着を表示し、長いバスと小型車、荷物のある人を形で区別。Pで止まって考え、Rで同じ列へすぐ戻れます。全員を通すと短い仕事が終わり、際限なく車は増えません。音がなくても情報は欠けません。

実Pyxelの自動プレイ映像は、動作と表示の確認用です。人が楽しいと感じた証拠ではありません。初見の人に「なぜ長い列を先に止めた？」「次は誰を待たせたくない？」と聞き、同じ列でもう一度試す理由が出るかを確かめたいです。時計に合わせた単純作業になる可能性は残っています。
