055 迷子の地図屋

主な迷い: 未知の出口を測って地図を増やすか、測った道だけで帰るか。
二つの * の部屋を訪ねてHへ戻り、Zで地図を渡すと依頼達成。
時間・食料・遭難はありません。少ない測定で帰っても正当な成功です。
実装・機能検証。面白さは人の試遊待ち。Windows実機未検証。

起動
Windows: このフォルダを丸ごと展開し、setup.bat、続いてplay.bat。
Python 3.10以上を事前に導入。初回はインターネット接続が必要です。
Linux/macOS: bash setup.sh / bash play.sh。macOS実機未検証。
実行依存はPyxel 2.9.9とPython標準ライブラリだけ。
日本語の字形データをassetsに同梱。OSのフォントに依存しません。

操作
矢印: 実距離一歩。押し直すたび一歩。押しっぱなしでは進みません。
Z: Hで提出。未達なら安全帰還・不足として記録。
X: 一歩または提出を取り消す。地図の知識もその時点へ戻ります。
R: 同じ洞窟を未探索状態から。P: 停止/説明。
1/2/3: A/B/Cの検証済み洞窟。M: 表紙。ESC: 終了。
S: 現在の確定盤面・ルール版・seed・意味入力列をrecordsへ保存。
別洞窟へ切替える前にSを押せます。保存は明示UTF-8です。
B: 一変更比較。訪問した部屋の出口だけ全長を先に公開し、同じ洞窟を再開。
全長公開でも未知の接続先や未訪問の部屋を地図へ追加しません。

地図の読み方
左は足元から実際に歩ける二歩まで。未測定の遠い部屋は描きません。
右は訪問順の模式地図台帳。並びや欄の長さは洞窟の座標・距離を表しません。
矢印方向、距離、接続先を記録します。? は未測定、>=n は少なくともn歩。
角から別の角へ歩き切ると、その辺の全長と両側の接続先が確定。
途中で引返しただけでは全長を記入しません。往復しても同じ辺は一つ。
画面のH帰路は、既に測定した辺と今歩いてきた部分だけから計算。
どの出口を通るかは地図台帳の長さを読み、自分で選べます。
帰還後は現在の地図を見たまま、歩数と測定辺数を確認できます。
同じ洞窟を再開すると前回提出の歩数を表示。前回地図は新探索へ重ねません。

有限bank
A-01-v1 四角の向こう / B-01-v1 近そうな長い横道 / C-01-v1 短い中央の接続。
任意整数seedや無限生成はありません。各6部屋・7辺、直交・接続を検査。
model.pyのLevel/State/stepは描画と独立。乱数は使いません。
正規化JSONのSHA-256、固定盤面、生成版、ルール版、論理tick、終了hashを保存。
再生照合: python tools/replay_record.py records/B-01-v1.json
盤面・ルール版・意味入力・最終payload/hashの相違は拒否理由を表示します。
環境版は記録メタデータであり、異なるPython版だけで再生を拒否するものではありません。
表示の歩数は9999+で省略しますが、保存には正確な整数を残します。勝手に別盤面へ読み替えません。

検証と収録
python -m unittest -v / python experiments.py は開発時の検証。
mediaの映像は実Pyxel描画への自動入力、無音、30fps。人の試遊ではありません。
実音声・音質は未検証。この作品の音声は使用していません。
自動試験は既存mediaを上書きしません。native入力観察は別のログです。
tools内の字形生成・映像変換は開発用でPillow/ffmpegが必要ですが起動には不要。
詳しい比較と検証範囲はQA.txt、変更理由と記事案はNOTE.txt。
