076 紙の水族館
紙の魚と、餌・藻・ミジンコの小さな関係を眺める八刻の飼育シム。
実装・機能検証済み／面白さは人による確認待ち。

始め方
Windows: Python 3.10以降でsetup.batを一度実行し、play.bat。
Linux/macOS: bash setup.sh、その後bash play.sh。
実行依存はPyxel 2.9.9＋Python標準ライブラリ。日本語ビットマップ同梱。
launch.shは今回のクラウド検証専用。通常はplay.sh/play.batを使います。
Linuxクラウド実Pyxelで機能確認。Windows/macOS実機は未検証。
音は使用しません。現実の飼育、餌量、水質、生態系の再現教材ではありません。

目的と操作
八刻を終え、魚1/2が各三食以上、ミジンコが合計二匹以上いれば基本達成。
直接給餌で満たすだけでも正当な成功。藻化や出生の全イベントを見る義務はありません。
表紙でSpace/Enter。1/2/3で水槽A/B/Cを選べます。
左右で給餌区画、上下で0/1/2粒。Enterで給餌して一刻進めます。
全部で十粒。Spaceは餌を入れずに一刻。選択だけでは時刻が進みません。
Zで次の一刻の正確な予告表示を切替。未来八刻の繁栄は保証しません。
開始前のTabは住処編集。上下でチップ1/2、左右で行先、Zで移す。
Tabで給餌へ戻ります。開始後のTabは区画別の数値詳細を開閉。
住処は開始後に動かせません。Xで一刻を戻し、刻0へ戻れば再編集できます。
P/Hは停止して説明。Rで同じ水槽を初期状態へ。Mで表紙。Esc終了。
終了後のVは保存した八刻の観察再生。元の達成・成長記録は加算されません。
再生中はP/Hで停止し、Vで元の結果へ戻せます。
同時押しは不採用。画面切替後もキーをすべて離し、押し直してください。

小さな規則
区画は左/中/右。二つの住処は一つでミジンコ二匹、重ねれば四匹を保護。
各刻は給餌→ミジンコ漂流→魚の移動→食事→残餌の変化→増殖、の順。
保護数を超えるミジンコは最大一匹、左→中、中→右、右→中へ漂流します。
同時に移すため、一刻のうちに二度漂流しません。各区画の上限は十二匹。
行先の空きは漂流前の数で決め、競合すれば左/中/右の出発順に予約します。
魚は今いる区画と隣から「餌×2＋露出ミジンコ」が最大の場所へ同時に移動。
同点は直前に相手がいた区画、現在区画、左/中/右の順です。
食事は奇数刻なら魚1、偶数刻なら魚2が先。古い餌が優先されます。
餌がなければ保護数を超えたミジンコ一匹。保護された住人は食べません。
魚はこの八刻で死にません。隠れた空腹ペナルティはありません。
残餌は投入刻で年齢1、次刻で年齢2になり消えます。住処があると藻+1、上限3。
藻がありミジンコが1~11匹なら、藻1を食べて一匹増えます。各区画一刻一回。
新生個体は次刻から移動・食事へ参加。0匹から自然発生しません。
藻が増えた直後に食べられても、二段のイベントを画面と記録に残します。

三つの水槽と検証済みの方法
A: 左へ魚二匹、ミジンコ四匹と住処二個。直接給餌から始められます。
B: 左右に魚と住処を分けた水槽。中央へ合流する様子を確かめられます。
C: 初期から緑の藻がある水槽。藻から増えた住人と食事の関係を観察できます。
初期住処のまま、中央へ2粒を五刻、残り三刻は待つ。A/B/Cとも基本達成します。
任意のA循環例（左0/中1/右2、区画と粒数）:
(1,2),(2,2),(0,2),(0,0),(0,0),(1,2),(0,0),(0,0)
刻4で左の残餌二粒→藻二つ→出生一匹、刻5で漂流→食事ともう一匹の出生。
最後の食事は5/3回、ミジンコ4匹、餌使用8粒。いつでも同じ循環になる意味ではありません。

一変更比較と再現
Bキーは残餌の藻化だけあり/なしを切替えて再開します。
残餌の消える年齢、魚、漂流、初期藻、増殖、予算、目標は同じ。
上記の同じ循環手順は藻化なしでも3/3食、ミジンコ4匹で基本達成します。
policy_results.json: 288件の名前付き方策、36件の幅64の枝刈り探索。
全列挙や最適解の証明ではありません。数値の多さを面白さとみなしません。
model.pyは描画と入力から独立した不変State/step。
SでrecordsへUTF-8 JSON保存。状況、ルール、入力、論理時刻、元ソースSHA-256を含みます。
保存は最大12件。上限では既存データを消さず拒否。自動読込はありません。
一試行256判断、イベント4096件まで。上限では新しい操作を停止します。
各起動でmediaの別セッションへ元ソースと意味入力・状態ハッシュを記録します。
F12は実画面PNG。観察再生と新しい給餌を区別して記録。

資料と注意
test_model.py/test_ui.py、policy_analysis.py、全ソース、日本語README/QA/NOTE/X_POSTS。
日本語ビットマップ由来NotoのOFL、Pyxel MIT、自作ソースMITを同梱。
実映像は自動操作した実Pyxelの約25秒無音MP4。全GIFフレームを一度ずつ30fpsへ変換。
自動検査、ネイティブ操作観察、人の試遊感想を区別しています。人の感想は未収集。
