020 すれすれ衛星 / 5段階の日本語Pyxel教材

起動: Python3.11以降 + Pyxel2.9.9が導入された環境で
  python 01_gravity.py
  python 02_fuel_thrust.py
  python 03_air_observation.py
  python 04_prediction_return.py
  python 05_checkpoint_flights.py

各ファイルは別名にして単独で実行可能。assets不要。
実検査: Linux/Python3.12.14/Pyxel2.9.9。3.11は構文だけ確認。
本文: LESSON.md / サイト向け標準データ: lessons.json / lesson_meta.json
差分: diffs/01_to_02.diff から04_to_05.diff（隣接ファイル完全差分）

共通: Space開始、キーを離して操作、P停止/再開、R初期化、Esc終了。
02以降: 左右=逆行/順行、上下=外/内。局所方向であって画面方向ではない。
05: 選択画面の左右でA/B/C、Z前回の窓入口、M選択、成功後N次へ。
コード変更は保存→終了→再実行。Rはコードを再読込しません。

01: 重力KDK。観測・燃料消費・大気なし。
02: 正規化した斜め噴射と有限/端数燃料。大気なし。
03: 大気抵抗と観測。観測済みでも帰還成功はまだなし。
04: 無噴射4秒予測と、別の全周帰還認定。A固定。
05: 原作同値モデル。入口へ状態一式を復元。A/B/C選択。
A/Bの無入力成功とCの無入力接触は意図的なルール。
黄色い4秒予測は安全の保証ではありません。
これは架空の物理ゲームです。航空宇宙設計・航法・安全判断には使えません。

モデル検査: python -B test_stages.py
CP932既定読込: python -B qa/cp932_check.py
実編集の練習: python -B qa/exercise_checks.py
実描画: python -B qa/runtime_checks.py NEW_DIRECTORY
相対出力: python -B qa/relative_output_check.py NEW_DIRECTORY
境界描画: python -B qa/render_boundaries.py NEW_DIRECTORY
原典照合: python -B qa/reference_check.py ORIGINAL_FOLDER NEW_DIRECTORY
配布固定確認: python -B qa/verify_freeze.py

初期PNG/JSON例（保存先フォルダは事前に作成、同名出力は不可）:
python 05_checkpoint_flights.py --headless-smoke --screenshot initial.png --report initial.json
自動入力チェックポイント:
python 05_checkpoint_flights.py --headless-smoke --demo-checkpoint --screenshot entry.png --report entry.json

相対出力は起動cwdへ保存。Pyxelより先に絶対化。スクリプト側の同名ファイルを保護。
全テキスト/JSONの実ファイル入出力は明示UTF-8。CP932試験はWindowsGUI検証ではない。

原作MIT全文は各ゲームの先頭コメントとLICENSE/ LICENSE.txt。
Noto OFLとPyxel MIT通知はassets。Noto字形はこのASCII画面では不使用。
OSキーボード/ブラウザ/Windows/macOS実機/音の聴取/人の遊びやすさは未検証。
原作や旧版の更新、Site統合、SEO変更、アップロード、公開は行っていません。
