006 片手の料理人 — 5段階の独立Pyxel教材

Python 3.11以上が共通要件です。Pyxelは2.9.9に固定しています。
01から順に学びます。各.pyは一個だけコピーしても動き、原作、他段階、
画像・音・フォント・JSONを実行時に読みません。日本語の解説はLESSON.md。
ゲーム内の加熱・温かさの数値は架空のルールです。実際の調理や食品安全の
助言ではありません。実際の安全判断に使わないでください。

準備（以下は利用者が実行する手順。教材作成時に新規インストールはしていません）
まずターミナルでこのREADMEのあるフォルダへ移動します。
macOS / Linux:
  cd "教材のあるフォルダ/006_one_hand_cook"
  python3 --version
  python3 -m venv .venv
  .venv/bin/python -m pip install -r requirements.txt
  .venv/bin/python 01_ownership.py
  .venv/bin/python 05_timeline.py
Windows PowerShell:
  cd "C:\教材のあるフォルダ\006_one_hand_cook"
  py -3.11 --version
  py -3.11 -m venv .venv
  .\.venv\Scripts\python.exe -m pip install -r requirements.txt
  .\.venv\Scripts\python.exe 01_ownership.py
  .\.venv\Scripts\python.exe 05_timeline.py
環境をactivateしなくても上記の直接指定で起動できます。

別の作業フォルダから起動する場合は、Pythonと教材のパスを両方引用します。
例（パスは実際の保存先に置換）:
  "/保存先/.venv/bin/python" "/保存先/日本語 空白/05_timeline.py"
PowerShellは実行ファイルの前に & を付けます:
  & "C:\保存先\.venv\Scripts\python.exe" "C:\日本語 空白\05_timeline.py"
一個だけコピーする場合でもPyxelが入ったPythonを使ってください。

基本操作
A/D・左右: 移動。Space: 取る、置く、交換、配膳。R: 最初から。Esc: 終了。
02以降: W/S・上下で材料の注文選択。
04以降: 焦げた手持ち皿だけXを24更新分（通常0.8秒）長押しで廃棄。
05のみ: P停止、Z成功操作前へ時刻ごと戻す。移動は10tick/区間。
同時押しは原作の順で処理します。詳細はLESSON.md「入力順」。

学習順
01_ownership.py: 一枚と手・棚。時間・完成条件なし。
02_transfers.py: 2注文、焼き台は交換禁止、棚は交換可能。まだ時間なし。
03_clocks.py: 加熱と完成後の時計。配膳・廃棄なし、焦げたらR。
04_service.py: 4皿の営業、配膳・焦げ直し・温かさ評価。瞬間移動。
05_timeline.py: 固定の原作Bに移動・予約・Undo・停止を加えた完成形。

困ったとき
- No module named pyxel: 起動に使う同じPythonで -m pip install -r requirements.txt。
- 構文エラー: Python 3.11以上か --version で確認。
- pip/venvが見つからない: Python公式のインストール内容を確認。Linuxのvenvは
  OS配布のpython3-venvが必要な場合があります。管理者権限は環境管理者へ相談。
- 画面や描画デバイスのエラー: GUIセッションのある端末で起動してください。
  --headlessは自動検査用で、操作用画面は出ません。
- Linuxで音声装置なしの初期化エラー: 無音の自動検査は
  SDL_AUDIODRIVER=dummy .venv/bin/python 01_ownership.py --headless --frames 2
  で試せます。これは音声確認ではありません。
- すぐ終了しない: 通常起動はEsc。自動検査は --frames で終了フレーム指定。
- 日本語が画面に出ない: 意図的にASCII表示です。日本語解説はUTF-8のテキスト。
- 焦げたまま進めない: 03はR、04/05は手に取りXを24更新分保持して作り直し。
- 移動中のSpaceは失敗します。到着した次の更新で押し直します（05）。

検査（原作不要、Pyxel不要の純粋/制御テスト）
  .venv/bin/python -B -m unittest -v
Windowsは .\.venv\Scripts\python.exe -B -m unittest -v。
qa/canonical_controller_trace.jsonは原作から作った比較用fixtureです。
任意の再照合はPYXEL006_SOURCE環境変数に原作フォルダを指定して実行します。
qa/run_qa.pyは実Pyxel描画と日本語・空白パスの単体コピー検査です。
qaの作成補助は教材起動に不要です。詳細な結果と限界はQA.txt。

ライセンスと素材
LICENSEは元のMIT通知全文（元の権利者表記含む）を保持し、全5.pyにも埋め込み。
元通知が参照するassets/NOTO-LICENSE.txtも改変せず同梱しています。
このASCII教材にNoto由来字形、glyphs.json、Notoフォント本体は含まれません。
新たなフォントライセンスや権利者を創作していません。
