091 風車村の冬支度
季節戦略 / 日本語 / Pyxel + Python標準ライブラリ

家を守る雪よけが、風車の風まで止めてしまった。
３軒の家と１基の風車。秋、初冬、厳冬、雪解けの４季節を計画します。
基本目標は雪解けに全家の快適度１以上。途中の暖所利用は失敗ではありません。

Windows: Python 3.10以降を用意し setup.bat を一度実行。次から play.bat。
macOS/Linux: bash setup.sh の後 bash play.sh。導入時のみネット接続が必要です。
ゲーム中の通信・外部素材・外部API・現実の支払はありません。
クラウドLinuxで検証。Windows/macOS実機、音の実聴、人の面白さ評価は未確認。
この作品は音を使いません。無音でも全ての結果を画面で確認できます。

操作
表紙: 1/2/3で冬A/B/C。Bで「雪よけが風を遮る／遮らない」の一変更比較。
Spaceで開始。← → で建設候補を選び、Zで計画に入れます。
Tabで配分する家を選び、↑ ↓ で熱を調整。各家の必要熱量まで指定できます。
Enterで収支と次の快適度を確認し、もう一度Enterで季節を確定。
確定前は建設案や配分を無料で変更できます。建設は１季に１件だけ。
Xで直前の季節の計画へ戻る。初季では計画を空にします。
S保存 / L読込 / R同じ冬を再開（確認） / M表紙（確認）
P停止 / H説明 / Esc終了（確認） / F12実画面PNG保存
場面変更後は全キーを離してください。複数キーの同時入力は無視します。

規則
予報は全季節を公開。西風なら風車より左と同列、東風なら右と同列の雪よけを
全て数え、風から差し引き発電します。雪よけはその家の必要熱を１減らします。
発電は電池へ加え、上限を超える分だけ消えます。その後に熱配分を消費します。
必要な熱を満たす家は快適度＋１（上限３）、足りない家は不足分だけ減少（下限０）。
０の家は暖所を利用。住人や家を失わず、次の季節に快適度を回復できます。
雪の量は景色のための公開情報。熱へ二重加算する隠し被害はありません。
雪よけ２資材 / 風車移設１ / 電池上限＋２は２資材（最大１２） / 撤去無料・返金なし。
季節末に資材＋１。更新順は建設→発電→熱消費→快適度→報酬→次季です。

試すこと
建設なしでもA/B/Cは基本目標へ届きます。家の配置を直すのは満点を義務にする
ためではなく、発電と需要の関係を試し、余り電池や見たい村を選ぶためです。
Rの雪よけと風上への移設、電池増設、暖所を使い雪解けに回復する過ごし方を
公開予告で比較できます。全家常時満点や最適な残資材は必須ではありません。

保存
save.jsonに作品ID、版、状況、状態、意味入力履歴、計画、比較設定を保存します。
一時ファイルへの書込み完了後に置換。読込時は型・範囲と初期状態からの再実行を検査。
破損や未知版では元ファイルを変更せず説明し、Rで新規開始できます。

検証資料
model.py:純粋状態・step・同じ式の予告 / controller.py:入力・確認・undo・保存
experiments.pyとsolution_logs.json:A/B/C各３方策の実行、各方策の到達状態で全合法計画を列挙。
４季節の全入力列の網羅や最適性は主張しません。別指標での違いを記録しています。
comparison_results.json:需要軽減・予報・費用・共通目標・同一入力を固定した遮風一変更。
python -m unittest discover -v:モデル、独立式照合、境界、入力release、保存破損、undo。
media/automatic_*:実Pyxelの自動操作・無音、全元GIFフレームを30fpsでMP4化。
media/native_*:エージェントによるLinuxネイティブ操作記録。人の試遊とは別です。
各撮影時の元ソースとSHAを同じフォルダへ保存し、テストは撮影物を上書きしません。
日本語は同梱glyphs.json。Noto Sans CJK由来、全文ライセンスとPyxelライセンスはassets。
