063 一枚足りない写真
実装・機能検証版。人による面白さ・初見理解は確認待ち。

雨の日の玩具写真館。0・1・3刻の写真から、なくなった2刻に写れた写真を選びます。
答えは「この四枚のうち」の集合です。一枚に絞れない状況も正式な成功です。
全部を比較する方法も、写真を直接読んですぐ結論を出す方法も選べます。

Windows: Python 3.10以降を用意し、setup.batを一度実行。次からplay.bat。
Linux/macOS: ./setup.sh、次から./play.sh。Pyxelの画面が使える環境が必要です。
実行時の外部依存はPyxelだけ。バージョンはrequirements.txtを参照。
この検証はcloud Linuxのみ。Windows/macOS実機動作は未確認です。
launch.shは検証環境専用。配布先ではplay.bat/play.shを使ってください。

操作
SpaceまたはZ: 表紙から開始（いったんキーを離す）
Tab: 写真欄→候補欄→根拠札欄
左右: 欄の中で選ぶ / Z: 写真二枚の選択、候補・理由の選択切替
上下: 重ねる濃さ0/50/100%。50%はパレットの網点表示
Space: 注目する背景・台車・屋根布・荷物を切替。黄色枠で場所を示す
Enter: 現在の候補集合と理由を提出
X: 比較・候補選択・理由選択・提出を一つ戻す。結論後も使えます
R: 同状況再開 / P: 説明と停止 / 1・2・3: 状況A/B/C
B: 旧写真の点線輪郭だけを外す管理比較版へ。同じ状況を再開
S: recordsへ入力・設定・論理tick・終状態・SHA-256を保存
Esc: 終了 / F12: 検証用の実画面PNGとログ保存

雨は「移動→布の着脱→その時刻の雨→撮影」の順に働きます。
乾いている荷物は雨かつ布なしなら濡れ、他の原因では濡れません。
一度濡れた荷物は乾きません。台車は一間隔に一升まで、止まる・戻るも可能。
写真は同じモデルの位置・布・濡れから描画しています。
全20状態のうち、候補外にも可能な状態がある状況があります。
そのため全世界の状態を答えるのでなく、明示した四枚を判定します。

根拠札は最大二枚。選択した規則だけでも四候補を同じ集合に絞れれば十分です。
「雨と布」は乾いた荷物が次の写真までに濡れる条件を扱います。
「濡れの残り」はすでに濡れた荷物が後で乾かない規則を扱います。
成功は比較回数を問いません。読む時間に期限・罰金はありません。
一試行は128判断まで。到達後はXで戻すかRで再開。入力記録最大1024件、
UI証跡最大4096件で、無制限にメモリを増やしません。

検証: python -m unittest -v test_model test_ui
独立全列挙・方策・一規則比較の再生成: python experiments.py
これらはmediaを変更しません。動画再生成は明示的に app.py --demo --headless、
続いて開発用Pillowとffmpegがある環境で tools/export_video.py。
動画は実Pyxelを自動操作した無音映像です。人の試遊・実音の証拠ではありません。

全ソースは同梱。assets/glyphs.jsonはNoto Sans CJKの部分ビットマップ。
完全なフォントライセンスはassets/NOTO-LICENSE.txt。ゲームのライセンスはLICENSE.txt。
