041 夜更けのパン窯 / Python + Pyxel
冷める窯の熱を使い、夕食の丸パンと明朝のラスクを用意する一画面のターン制。

Windows: このフォルダ全体を展開。Python 3.10以上を入れ、setup.batを一度実行。その後play.bat。
macOS/Linux: sh setup.sh、sh play.sh。任意の作業ディレクトリから実行可能。
実行時の依存はPyxel 2.9.9と標準ライブラリのみ。開発用の画像・動画ツールは不要。
launch.shは検証環境専用。通常はplay.shを使用。

操作
SPACE/Zで表紙から開始。上下で操作、左右で1/2個、Zで実行、SPACEで一手待つ。
Xは最後の確定操作を完全に戻す。Rは同状況を再開。1~3は状況選択。
Pは説明/停止。停止中はP/R/Mのみ有効。Mは表紙。Bは比較変種へ切替えて再開。
ESCは終了。操作を押し続けても連続実行しない。場面変更後は全キーを離す。

規則
熱3~4で生地を丸パンへ、熱1~2で丸パンをラスクへ。一手に1~2個。
合法な焼成・接客・待機の後、熱は1下がり時刻+1。火入れは薪1で終了時に熱4。
受付の開始/終了はともに含む。必須注文をすべて渡せば達成。
締切を逃した必須注文があれば未達。Xで戻せる。品物は自然消滅しない。
Cは必須達成後も任意注文を続行できる。薪1を残した達成も正式な成功。
条件不足の操作は時間・在庫・undo履歴を変えない。

検証・収録
python -m unittest -v : 純粋モデル、入力、全到達状態の文字枠と日本語字形。
python experiments.py : 別案・未達列・全状態探索・比較・限定的な方策試験を生成。
python app.py --headless --demo : 自動操作の実Pyxel描画。人の試遊映像ではない。
mediaのautomatic/native/comparisonは別証拠。詳細はQA.txt。
比較はラスク適温の上限だけ2から4へ変えた管理用変種。昔の版ではない。

全ソースとデータを同梱。フォントはNoto Sans CJK由来の字形データ、SIL OFL 1.1。
assets/NOTO-LICENSE.txtを参照。音声は実装していない。
