070 帰れないラジオ局

雨で祭りが早く終わった町。四つの放送枠で、今の帰路、後で来る助け、今夜だけの声から選びます。放送後の電話と引継ぎが実際の結果に応じて変わります。

目的と安全な選択
四枠を終えるか、引継ぎを書いて早く閉局すれば担当者は帰れます。全員を満足させる隠し正解や総合点はありません。会館で待つ道も正当です。未対応の人を死なせたり、選ばなかった人の気持ちを勝手に断定しません。早期閉局の未来の予約は、達成済みにせず引継ぎます。

操作
Space/Z 開始。上下で着信、左右で原稿/影響/地図。Zは読むだけ、Enterで放送確定。Xは直前の放送と電話/既読/人物状態を丸ごと一枠戻す。Rは同じ夜、P説明と停止、1:A、2:B、3:C1、4:C2、BはAだけ比較版、S記録、M表紙、Esc終了。長考や閲覧では時計が動きません。決定キーは離して次の操作。同時Z+Enterは読むだけです。

固定状況
A: バスは時計2発の二席。傘募集は時計3に一人の徒歩案内。歌は最初の枠だけ。帰宅三人と歌は両立しないことを全列で確認。
B: 灯り作業+1、箱の客+2、静かな帰路-2を同時計ならこの順に処理。時計2の静けさと現在の静けさを分ける。灯り/箱/早い静けさを全部得る列はない。
C1/C2: 船は時計1/4、各一人。橋の回答は取材開始時計+3。C1は閉、C2は開という固定検査用の別夜です。ゲーム中は回答まで真相を表示しません。再開で変わりません。
検査済みの得失: 渡し→確認はどちらの夜も二人帰宅、一人は時計1。確認→渡し→待機→橋案内は開なら四人帰宅、閉なら一人帰宅。先に確認すると最初の船を逃すため、単に先に調べれば常に上とはなりません。

更新順
公開条件→放送効果/予約→時計+1→予約到着（規定priority）→便の出発と時計2の記録→新しい電話→終了判定。最終時計4の船/回答も処理。枠3に取材すれば回答は時計6で、予約として後任へ残します。同じ原稿の二重効果はなし。遅れた依頼は別の締切後カードで残ります。

一変更比較
AでBキー。後続電話を条件成立時に公開する原版と、最初から条件付き見本を読める比較版。放送可能条件、効果、締切、真相、本文集合、引継ぎの目標は同じ。見本を実際の礼の着信とは表示しません。全226終了列の結果が完全一致することを検査。Cの未来回答を漏らす比較はしません。

起動
Windows: Python 3.10以上を用意、setup.batを一度実行してplay.bat。Pyxel導入時はインターネット接続が必要。Windows実機は未検証です。
macOS/Linux: sh setup.sh、sh play.sh。ランタイムはPyxel＋標準ライブラリ。日本語字形と全文ライセンス同梱。開発用文字生成/動画変換だけPillow/ffmpegを使用。

検査と記録
python -m unittest -v test_model test_ui / python experiments.py
A/B/C1/C2の有限bank、任意seedなし。不変State/stepと描画分離、設定・意味入力・論理順・正規化JSON SHA-256・終了状態。Sの書出しはrecordsへ。一試行64状態変更、記録512意味入力まで。読み取りは状態の既読を更新しますが、放送undoの単位を増やしません。
mediaは自動操作の実Pyxel無音映像と、エージェントによるクラウドLinux操作記録。観測時のsource snapshotと原本イベントを保存します。テストはwriterを置換し、証拠を書き換えません。

未確認
人の面白さ/理解/納得、Windows/macOS実機、実聴、公開投稿。合図はこの版では文字表示のみ、映像は無音。架空の町であり、実電話やアカウント、個人連絡先、外部放送は使いません。
