072 ひとつの温室
窓を一つ開けると、熱と湿り気が動く。葉と水滴を見ながら育てる8刻の小さな環境シム。

起動
Python3.10以上、Pyxel2.9.9。実行時はPyxel＋標準ライブラリのみ。
Windows: setup.bat→play.bat。Linux/macOS: bash setup.sh→bash play.sh。
日本語グリフ同梱。別の作業フォルダ、日本語・空白を含むパスで起動できます。
launch.shは開発用cloud Linux専用。通常はplay.sh/play.batを使います。
Windows/macOSの実機操作は未確認。文字コードの模擬検査と区別します。

目的と操作
左の草花Fと右のシダSを、8刻でそれぞれ3回以上育てれば依頼達成。
矢印左右で区画選択。Zは開閉の候補を選ぶだけで、時間も窓もまだ変えません。
Enterで候補の窓を開閉＋1刻。候補なしのEnterとSpaceは変更なしで1刻。
開いた窓は次も開いたまま。1刻に変えられる窓は一つです。
Xは窓変更を含む直前の1刻へ戻す。結果画面でも履歴を残します。
P/Hは説明と停止。Rで同じ日を再開。1〜3で状況A/B/C、Mで表紙。
Tabは換気/拡散量→加熱と換気の中間値→以後窓を変えない試算の順。
BでAの一変更比較に移り切替、SでJSON保存、F12画像、Esc終了。
複数キーは不採用。一度離して押し直すまで再確定しません。
読む間に時刻は進みません。1試行256決定、セッション4095記録で上限を明示。

仕組み
T/Hは暖かさ・湿り気の0〜12整数目盛で、摂氏や相対湿度ではありません。
日差しのTと両鉢の土のH+1を加え、開いた窓で外気へ最大2ずつ近づけます。
次に隣の区画との目盛差の1/4を切り捨てて移動。左右の流れを同時に反映。
最後に0〜12へ制限し、快適ならその鉢が1育ちます。
草花FはT6〜10/H4〜9、シダSはT3〜8/H6〜11。境界も含みます。
範囲外の刻は休むだけ。枯れたり病気になったりはしません。
次の予告は選択中の開閉を同じstepへ仮適用。中間値と増減も一致します。
拡散量の正は左→中/中→右、負は逆方向。比較版では全て0です。
葉の開閉は直前に育ったか、水滴の数は今の湿り気から描画。
最初の葉は準備姿勢。窓を維持した全期間試算は候補の開閉を含まず、現在の窓だけを使います。

三つの日
A 朝の左窓: 冷たく乾いた外気。中央窓を3刻目に開き、そのままで両鉢8。
B 昼だけ暑い日: 昼の外気はT7。窓を開けても外気以下へ直接冷却しません。
C 雨の外気: 前半は外が湿っていて、窓から湿り気が入ることがあります。
   全閉8刻でも(3,5)で正式な基本成功。隠れた減点や追加操作の義務なし。
8刻の天気、日差し、植物の範囲は全て公開されています。

検算と比較
3つの窓の開閉/待つ、4^8=65,536列を各日検査。A比較も同じ全列を検査。
基本成功: A49,078、B52,876、C36,533、A比較35,010列。数値調整なし。
両鉢の最大成長、片側優先、開閉最少、全閉などはSTRATEGY_RESULTS.txtとpolicy_results.json。
B比較キーはAの拡散だけを有/無へ変更。加熱、窓、閾値、目標、8刻を固定。
同じ列[待つ,待つ,左,待つ,左,待つ,待つ,待つ]で原版(6,6)、比較(6,3)、両版成功。
成長や操作数の違いは計算結果であり、遊ぶ人の面白さの優劣ではありません。

ファイルと再現
model.pyのLevel/State/stepは不変・整数、描画/入力/時刻/ファイル操作に非依存。
model.pyのrecord/replay_recordが状況表、入力履歴、正規化JSONのSHA-256を検査。
controller.pyが入力とrelease gate、app.pyが日本語UI/実描画を担当。
media/automatic_*は自動操作による実Pyxel映像、native_*はエージェントのnative操作。
全セッションに当時のapp/controller/modelと元ログを保存。派生検証は元証跡を上書きしません。
検査: python -m unittest -v。方策記録生成: python verify_policies.py。
録画: python app.py --demo --headless。MP4化: python tools/export_video.py。
動画加工・グリフ再生成にだけPillow/ffmpegを使用。ゲーム実行には不要です。

確認の範囲
実装/機能検証と、人による初見理解・面白さ確認は別です。人の評価は未確認。
現実の気象・栽培の再現教材ではありません。音を使わず、実聴の主張もありません。
ゲームMIT、Noto由来グリフOFL1.1、PyxelMIT。完全なライセンスを同梱しています。
