032 盾のない騎士 / 5段階Python・Pyxel教材

まずLESSON.mdを開いてください。lessons.jsonは同じ5段階を機械で扱うデータです。
必要: Python 3.11以上、Pyxel 2.9.9、GUI/OpenGL対応PC。
検証環境: Python3.12.14 / Pyxel2.9.9 / クラウドLinux。

Windows（PowerShell、展開先で）:
py -3 -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe 01_movement.py

macOS/Linux（展開先で）:
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python 01_movement.py

01_movement.py: 座標と移動だけ
02_telegraph.py: 固定槍の予兆と回避。剣・勝利なし
03_sword.py: 原作Aの剣と一対一
04_friendly_fire.py: 原作Bの斧と同士討ち
05_perception.py: 原作モデル全部。標準C、--level A/Bでも起動

各.pyは独立。別のゲーム・兄弟モジュール・assetsを実行時に読む必要なし。
原作のNoto字形とライセンス通知は権利の継承として保持しています。
矢印=移動、Z=03以降の剣、X=02以降の回避（無敵なし）。
R=初期化、P=停止。R/Pの後は操作キーを全て離す。Esc=終了。Undoなし。

テスト: python test_stages.py（標準ライブラリのみ）
CP932標準読取の模擬検証: python qa/simulate_cp932.py
初期画像: python 05_perception.py --still --headless --frames 1 --output <別の出力先>
固定入力: python 05_perception.py --demo --headless --frames 233 --output <別の出力先>
凍結台帳: python qa/verify_freeze.py
全描画再現: python qa/render_checks.py --python <Pyxel環境Python> --output <別の出力先>
練習: python qa/perception_exercise.py

--framesは1以上。--headlessや--outputは--frames必須。無効CLIはPyxel import前に拒否。
実プレイは--headlessと--demoを付けず実行。初回依存インストールはネットが必要です。

qa/REVIEW.md・qa/results.json: 今回の検証範囲
qa/logs: テストと実行コマンドの記録
qa/renders: 実Pyxelの初期・途中・終端画像と状態JSON
qa/reference_model.py.txt・reference_replays.json: 原作比較の参照fixture
FROZEN_SHA256.json: 配布全ファイルの台帳（自分自身・キャッシュ除外）
diffs: 隣の段階との差分。適用せず各完成ファイルを起動できます。

原作は改変していません。原作の過去のQAは今回のQAとは別です。
MITのLICENSE/ LICENSE.txtとassets/NOTO-LICENSE.txtを保持してください。
ブラウザー実行、Windows/macOS実GUI、音声、人の学習効果は未検証です。無音です。
