019 くるり荷車：5段階の独立Python/Pyxel教材

コードを変更する課題では、ファイルを保存し、実行中のゲームを終了してから同じ.pyを起動し直してください。Rなどのリセットはゲーム内の状態を戻す操作で、ソースファイルを読み直す操作ではありません。

まずLESSON.mdを読み、01_drive.pyから順に動かしてください。
各.pyは別の段階ファイル、画像、JSON、原作フォルダーなしで単独起動できます。
テスト・文書・ライセンス・QAを使うときは教材フォルダー全体を保持してください。
Python3.11以上/Pyxel2.9.9。今回検証: Python3.12.14/Linux、SDL_AUDIODRIVER=dummy。

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

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

02_load.py → 03_walls.py → 04_delivery.py → 05_departure.pyと進めます。
上/下:前後、Space:開始/制動、02以降左右:舵・Z:積替、04以降Space新規押下:配達。
05はU:出発復元、P:停止、Q:表紙、N:成功後の次道路。R:現在道路を初期化、Esc:終了。
画面遷移後は全操作キーを一度離してください。01/02は衝突なし、03以降は衝突あり。

テスト: python -B test_stages.py
既定CP932のファイル読取り試験: python -B qa/cp932_check.py
実描画: python -B qa/runtime_checks.py 新しい出力フォルダー
凍結照合: python -B qa/verify_freeze.py
記録: qa/REVIEW.md、qa/results.json、qa/runtime/。差分: diffs/。
原作比較: qa/reference.jsonは原作定義と七ルートの読み取り証拠です。
連続浮動小数点の全状態探索ではありません。ブラウザ/Windows/macOS実機/音/人の試遊は未検証。
LICENSEとLICENSE.txtは原作ライセンスの同一バイト。参照されるNoto告知も保持。

個別のNN_*.pyにも原LICENSE.txtの全文をコメントとして保持しています。単体でコピーするときも、この著作権・許諾表記を残してください。
