010 ひと息の花火
Python 3.10+ / Pyxel 2.9.9。音は不要。日本語は同梱のNoto由来ビットマップ。
Windows: setup_windows.batを一度実行し、play_windows.bat。
macOS/Linux: bash setup.sh、bash play.sh。
標準ライブラリだけの検査: python test_model.py
位相表: python tools/phase_probe.py（解答を含む検証用。ゲーム画面には出しません）

左右/上下で起点、Spaceで一度だけ点火。27フレーム後、半径22以内にいる花火へ伝播。
細い線が往復軌道、矢印が方向、小さな黄色輪が選択花火の27フレーム先。
P:停止と操作説明。停止中は点火不可。R:同じ状況。N:次の配置。M:左右反転。
結果で左右:実際の連鎖イベントを一段ずつ再生。Q:終了。F12:スクリーンショット。
B:同じ配置の静止版/往復版を比較。初期位相は毎回固定。無作為seedは導入していません。

Aは短い導入。Bは橋が動くため、起点だけでなく時刻が成否を変える。
Cは両枝が違う位相で動くため、右の枝から戻す選択も試せる。
黄色の軌跡は実際の点火、結果の赤破線はそのイベントで最寄りだった未点火との距離。
破裂の輪の見た目は余韻であり、後から飛び込む花火は拾いません。

media/one_breath_auto.mp4 は自動操作・無音の22秒映像。実Pyxel描画。
自動成功は面白さの確認ではありません。人による010の感想は未取得。

プログラム: LICENSE (MIT)。派生字形: assets/NOTO-LICENSE.txt (SIL OFL)。
フォント再生成はtools/build_font.py（PillowとNotoSansCJKが必要）。実行時には不要。
