077 からくり郵便室：5段階のPyxel教材

Python 3.11以上 / Pyxel 2.9.9 / GUI・OpenGL対応PC。
共通原典READMEのPython3.11以上を採用しています。
初回インストールだけネット接続が必要。通常はPyxelと標準ライブラリだけで動きます。
ZIP全体を新しいフォルダーへ展開し、そのフォルダーで以下を実行してください。

Windows:
py -3 --version
py -3 -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe -B 01_branch.py

macOS/Linux:
python3 --version
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python -B 01_branch.py

次は02_tree.py、03_sync.py、04_mission.py、05_undo.pyへファイル名を替えます。
各.pyは他の教材や素材をimportしない独立プログラム。単体でも実行できます。
.venvを別PCへコピーせず、各PCで作り直してください。

操作:
01: Zカード / P見本荷物 / Space分岐計算。
02: 左右で台 / Zカード / P見本荷物 / Space全経路計算。
03: Enter試運転 / Space一刻。カードと札は正解固定。
04/05: 矢印で台・箱 / Tab台と箱の切替 / Zカード・札 / Enter試運転 / Space一刻。
05だけXで一手Undo。全部Rで初期化、Escで終了。
同時押しは受け付けず、操作後は全キーを離すまで次の操作を受け付けません。

01/02は時計もクリアもない模型です。03から原作B通常同期規則の6便、04から自分で解きます。
画面のCOLORは色、WEIGHTは重さ、LEFT/RIGHTは素通り、RH/RL/BH/BLは赤重/赤軽/青重/青軽。
全操作、読み方、確認結果、失敗例、練習問題はLESSON.mdにあります。

困ったとき:
・No module named pyxel: 起動と同じ.venvのPythonでpip install -r requirements.txtを実行。
・can't open file: 展開先フォルダーとファイル名を確認。日本語や空白を含むパス全体は引用符で囲む。
・画面が出ない/GLエラー: 通常起動はGUI/OpenGL対応のPCで実行。端末のみの環境とは異なります。
・入力できない: ゲームにフォーカスし全キーを離す。EDITでEnter、RUNでSpace。結果からはR、05ならX。
・Enterしても始まらない: 判定カード上限を確認。Bの標準CAP=3は全3台を許可。改造でCAPを下げた場合は要注意。
・05で戻っても操作できない: 512操作上限後はUndoしても操作枠が戻りません。Rで再開します。
・自作改造で失敗したら: 元の.pyを別名で残して変更差分を比べる。diffsは各段階間の学習用差分です。

配布単独の純粋規則・合成入力・原作B期待値比較（Pyxel不要）:
Windows: .venv\Scripts\python.exe -B -m unittest -v test_stages.py
macOS/Linux: .venv/bin/python -B -m unittest -v test_stages.py
原作全構成を2段階分調べるため少し時間がかかります。外部の原作パスやネットは不要です。
テスト一式にはqa/original_B_fixture.jsonと教材文書を含むZIP全体が必要です。
実Pyxel自動描画の再確認例:
python -B 05_undo.py --headless-smoke --demo-checkpoint --screenshot qa/my_check.png
通常起動では--headless-smokeを付けません。ヘッドレスPNGはネイティブ実機の確認ではありません。

権利・確認範囲:
LICENSEと各.py先頭に原作MIT全文を保持。Noto由来の字形データは同梱せず、画面はASCIIのみです。
元ライセンス末尾の第三者字形例外は原文として残しています。原作字形も利用するならSIL OFL表記を維持してください。
Linuxクラウドでの実Pyxel自動描画と純粋テストの詳細はQA.txt。
Windows/macOSの実窓・OSキー、ブラウザー、人による学びやすさ、音の実聴は未確認。ゲームは音声なし。
