051 三部屋の地下道
出口で見える二つの部屋が、いま拾う道具を変える。

起動
Windows: Python 3.10以上を入れ、setup.batを実行。次からplay.bat。
macOS/Linux: bash setup.sh、bash play.sh。
Pyxel 2.9.9と標準ライブラリだけ。このフォルダ単独で遊べます。
launch.shは制作クラウド専用。Windows実機未検証。

目的と操作
SPACE/Zで開始。三部屋を通り、体力1以上で帰還すれば成功。
宝4/8個は任意の目安。少ない宝でも帰還成功です。
上下で通路、Zで通過。通路の傷は今の装備で計算します。
次に左右で道具を残す/交換、Zで決定。道具は一枠だけ。
左右で次の部屋を選びZ。右のカードには次の二室とその出口が見えます。
P 穴/縄、D 暗所/灯、W 深水/長靴。対応する全ての傷を防ぎます。
混成通路では一種類しか防げません。拾う道具は過去の傷を治しません。
体力0以下なら未帰還。宝は獲得したまま記録します。
X 一決定戻す。R 同じ面の最初へ。P 説明/停止。M 表紙。
1～3 面A/B/C。F5で現在の意味入力記録を保存。F12は画像を保存。
R/面変更前と結果到達時にも記録を保存します。保存先media/native。
保存名replay_A-01.json等は同じ面の最新記録で上書き。
一決定後の短い演出、停止、結果、表紙で入力解放を追跡します。
状態切替後は一度キーを離してください。同時押しの決定は受けません。

有限bankと記録
A-01/B-01/C-01@051-bank-1の三つの手作り木です。無限生成ではありません。
model.pyはPyxel非依存。各木255節点/128終了経路を開発時に全列挙。
将来の任意seedや任意の木の可解性は主張しません。
記録は盤面全体、ルール/bank版・環境の互換条件メタデータ、盤面SHA256、意味入力、論理tick、
終了状態を含みます。python model.py 記録.jsonで一致を検証できます。
状態hashに描画や停止回数は含めません。異なるPYTHONHASHSEEDで照合済み。

判断の違い
Aは道具の読み方を試す導入。宝9/体力5の帰還があり、最終成果の
パレート最良は一つです。全ての選択が対等だとは主張しません。
Bは宝8/体力5、宝10/体力4、宝11/体力3、宝12/体力2が相互非優越。
Cは宝8/体力5、宝10/体力4、宝12/体力2が相互非優越。
即時の宝を選ぶBの方策は未帰還。傷最小策にも正当な帰還を残しています。
policy_results.jsonには固定した五方策、solver_results.jsonに全探索結果。
solution_logs.jsonには各面の安全/宝優先例。最適化は人の面白さの証拠ではありません。

比較と検証範囲
Bの対応道具の防御だけを有効/無効にした管理された比較。
体力・木・宝は同じ。共通の低傷経路は両版で帰還できます。
起動引数--no-defenseで比較版。これは架空の旧版制作史ではありません。
media/automaticは実Pyxel描画の自動操作、無音の約25秒動画と画像。
media/nativeはエージェントのクラウドLinux実入力で、人の試遊ではありません。
人による面白さ、Windows実機、音の実聴は未確認。意図的に無音。

ソースMIT全文: LICENSE.txt。日本語同梱glyphはNoto Sans CJK由来、
SIL OFL 1.1全文: assets/NOTO-LICENSE.txt。外部フォント不要。
フォント再構築/動画変換の開発ツールのみPillow/ffmpegを使用します。

環境欄は必要ランタイムの説明で、環境自体の一致を保証する検査ではありません。
