098 一冊の動く絵本 / 5段階Python・Pyxel教材

二つの物の「軽い/重い」「短い/長い」を交換し、渡し舟、橋、風の三章を作ります。
まずLESSON.mdを読み、01から一つずつ起動してください。各.pyは独立し、原作や他段階、画像、フォントを必要としません。
日本語は解説とデータ、ゲーム画面はASCIIです。自動のデモ入力を人間のプレイと呼びません。

準備（Python 3.10以上。検査済みは3.12.14）
Windows:
  py -m venv .venv
  .venv\Scripts\python -m pip install -r requirements.txt
  .venv\Scripts\python -B 01_word_pairs.py
macOS/Linux:
  python3 -m venv .venv
  .venv/bin/python -m pip install -r requirements.txt
  .venv/bin/python -B 01_word_pairs.py
以後、01のファイル名を02_ferry.py、03_bridge.py、04_wind.py、05_book.pyへ替えます。
単体.pyだけコピーした場合は、同じPython環境へ pyxel==2.9.9 を入れてください。
動作にネット接続は不要です。pipでの初回導入には通常ネット接続が必要です。

操作
01: 矢印で対象、Zで選択/解除、二つ選んでEnterで交換。
02〜05: Tabで歩く/札。歩く時は左右、Zで章固有操作。Spaceで一段階待機。
03〜05: 完成した章でN、前章へQ。各章の状態と完成絵を保持。
全段階: R→Enterで現在章だけ再開。R→Xで取消。Escapeは確認なしで終了。
05: Xで意味操作1手Undo。S保存、L読込（明示パスが必要）。
キーは一度離してから次を押します。同時押しは拒否します。
01の移動/待機、01〜04のUndo/保存は未実装です。

保存する場合（05のみ）
  python -B 05_book.py --save-book "途中の本.json"
Sを押すまで作成しません。同じコマンドで次回起動しLで再開できます。
未完成でも保存可能。同形式の正常な既存ファイルだけ上書きします。
原作save_098.jsonや無関係/壊れたJSON、シンボリックリンクには書きません。
親フォルダーがない場合はsave_failed。必要なら自分で新しい専用フォルダーを作ります。
形式/由来/値域を検証しますが、暗号署名や全状態の到達可能性検証ではありません。
保存には2,000,000バイト上限があり、長い履歴では1000手未満でも上限に達する場合があります。
エラー時は状態を保持します。既存の本を置き換える前の書込失敗では既存内容を保持します。

検査
  python -B -S test_stages.py
原作なしでもsource-derived fixtureで照合できます。Pyxelは不要、標準ライブラリだけです。
任意のライブ比較（原作を所有している場合）:
  python -B tools/source_fixtures.py --original "原作098のフォルダー"
実Pyxelの初期/到達点を取る例:
  python -B 05_book.py --demo-checkpoint --screenshot "検査/完成.png" --report "検査/完成.json"
--headless-smokeは初期状態。--demo-checkpointと同時指定はできません。
画像は.png、QA報告は.json。QA報告はLで読めるセーブデータではありません。
--screenshot/--reportにはheadlessのどちらかが必要です。出力先は重複不可。
実描画/単体可搬性/不正CLIを再検査する場合:
  python -B tools/run_runtime_qa.py --python "Pyxelを入れたPython実行ファイル"
上の再検査はqa内の検査出力を更新するため、凍結ハッシュの検査とは別です。
配布内容のハッシュを確認:
  python -B tools/check_freeze.py

同梱
LESSON.md: 日本語の手順、観察、つまずき、課題と答え
lessons.json / lesson_meta.json: 同内容の構造化版
diffs: 隣接段階の正確な差分
qa: 原作由来fixture、実Pyxel画像/状態、試験ログ、由来情報
LICENSE: 原作MIT全文。各.pyにも全文を埋込み。
assets/PYXEL-LICENSE.txt、assets/NOTO-LICENSE.txt: 参照される全文通知
Noto字形データはこの教材では使いません。

Windows/macOS実機GUI、ブラウザー、OSキーの実入力、音の実聴、人間の学習効果や面白さは未確認です。
QA.txtの確認範囲を読み、原作baselineと教材の検査を混同しないでください。
