083 いたずら庭師 — 五段階の日本語教材

このフォルダーだけで学べます。ゲーム本体の各.pyは一つだけコピーしても動きます。
対象: Python 3.12以降、Pyxel 2.9.9。検証環境はPython 3.12.14 / Pyxel 2.9.9。
導入: python -m pip install -r requirements.txt
実行: python 01_paths.py （02〜05も同様）
画面はASCII、解説は日本語です。音声・ネット接続・外部画像は使いません。

学ぶ順番
01_paths.py   入口からの小道と四近傍
02_roots.py   根の切断・残存・再接続を一人で実験
03_turns.py   二役二行動・吸水・交代幕・役別の公開情報（DIGは未実装）
04_digging.py 十字掘りを加え、原作Aのモデルを完成
05_handoff.py 同時押し拒否、全解放、双方リセット確認を加えた完成UI

03以降は同じ画面を二人で交代します。幕が出たら次の役以外は画面を見ないでください。
キーを全部離して、次の役がEnterを押します。これはゲーム上の約束であり、
画面の覗き見・ソース・プロセス・ファイルへのアクセスを防ぐセキュリティではありません。
人間二人の使いやすさはまだ試験していません。ネットワーク対戦ではありません。
通常実行は私的な状態やコマンド履歴をファイルへ自動保存しません。
テスト用fixtureと--demo-checkpointは公開された固定例を一人で観察する用途です。

共通操作: 矢印でセル、Tabで行動、Zで仮選択、Enterで確定、Xで仮選択取消。
02: ROOT/CUT/DRAINをTabで切替。CUTは実験用で小道制約なし。
03〜05: PATH/WATER/[04以降DIG]/WAIT、モグラはROOT/WAIT。
04/05: H説明。05: Rは二人の確認、Escは終了確認。Xで確認を取消。
01〜04のRは直接初期化、Escは直接終了。03以降の結果でSpaceは役交換して再試合。
Xは確定済みUndoではありません。知った秘密を取り消せないためです。

LESSON.mdに考え方・期待結果・検証済み課題、lessons.jsonに同じ構造化本文があります。
diffs/は隣の段階との差分です。各段階は前のファイルをimportしません。

標準ライブラリだけの試験:
  python -B test_stages.py
任意の原作比較:
  ORIGINAL_GAME_DIR=/原作/083_mischief_garden python -B test_stages.py
原作は同梱せず、固定期待値はqa/reference_fixture.jsonに収録しています。
JSON・日本語テキストは常に明示的にUTF-8で読み書きします。
自動描画（人間の試遊ではありません）:
  SDL_AUDIODRIVER=dummy python -B 05_handoff.py --headless-smoke --demo-checkpoint --screenshot out.png
--screenshotを指定した時だけ画像を保存します。実行ディレクトリーに依存しません。
凍結配布の検証: python -B tools/verify_frozen.py
QA.txtとqa/REVIEW.mdに証跡・限界を記録しています。

ライセンス: LICENSEは原作LICENSE.txtと同一内容です。
各ゲーム.pyにも完全なMIT文面と元の第三者例外を収録。
このASCII版はNoto字形データを使いませんが、元の通知を削らず、参照先の
assets/NOTO-LICENSE.txt、assets/PYXEL-LICENSE.txtも原文のまま添付しています。
