099 あしたも開く店 — 五段階の日本語Pyxel教材

必要: Python 3.11以上 / Pyxel 2.9.9。
導入: python -m pip install -r requirements.txt
実行: python 01_sales.py
続いて 02_reservations.py / 03_tomorrow.py / 04_referrals.py / 05_undo.py。
各ファイルは独立。実行時はPyxelと標準ライブラリのみで、外部画像不要。
ファイルを任意の名前に変えて一個だけコピーしても実行できます。

読む順序: LESSON.md → 各段階の.py → diffs/の隣接差分。
lessons.jsonは画面掲載用の説明・文字どおりのコード片・演習回答です。
lesson_meta.jsonは学習項目・原作との差・次に読む関数です。

操作:
Z 販売/予約/受取。03以降は朝の仕入確定と閉店にも使用。
X 通常購入/予約を見送る。受取客は見送れません。
左右 朝の商品を選択。上下 仕入案0〜3個。合計3、予約込み棚5まで。
U 05だけUndo。R 初期化。Esc 終了。
一回押すごとに全操作キーを離してください。同時押しは無効。
01/02は一日の練習、03以降は三日間。時刻は判断でだけ進みます。

重要な規則:
予約は持っている品に客の名前を付けるだけで即売上になりません。
翌朝の仕入時には予約も棚枠を占め、その後、本人が必ず受け取ります。
04/05は受取客→固定客2人→先頭受取客の逆商品を求める友人1人。
紹介の客列は朝に決まります。見送りで翌日の固定客は変わりません。
3日目に4日目予約はなく、3日目家賃後に4個以上販売かつ現金0以上が目標。
人物、コイン、取引は架空で、現実の事業の売上や収益を保証しません。

テスト:
python -B test_stages.py -v
標準ライブラリのみ。Pyxelの導入なしでもモデルと操作テスト可能。
原作がない場合、任意の直接原作比較だけは明示的にskipします。
原作比較はSHOP_ORIGINAL_SOURCEへ原作フォルダを指定。コピーのみ実行。
python -B qa/verify_freeze.py で確定ファイルを照合できます。

実Pyxel QAの再実行:
python -B qa/render_check.py --output-dir "新しい QA フォルダ"
空または未作成の出力先を明示。既存の証拠を上書きしません。
SDL_AUDIODRIVER=dummyを使用し、全15描画と不正引数を検査します。
保存/読込機能なし。自動QA以外ではファイルを書き出しません。
--headless-smoke --screenshot は新規.pngだけ、親フォルダは事前作成。
--demo-checkpoint / --frames はheadless用で、起動前に範囲検証します。

検証範囲:
Linuxの実Pyxelヘッドレス描画・自動入力・純粋モデル・改名単独実行。
Windows/macOS GUI、実キーボード、ブラウザ、音の実聴、人の学習は未確認。
画面と検証記録はqa/。原作の変更や公開Siteへの反映はこの教材に含みません。

ライセンス:
LICENSEおよびLICENSE.txtは原作と完全一致。五つの.pyも全文ヘッダー保持。
参照先のassets/NOTO-LICENSE.txt同梱。教材のASCII表示は字形データ不要。
