036 返せる弾丸
実装・機能検証済み／面白さと操作の快適さは人による確認待ち。

遊び方
左右：移動（x16..144、毎tick1.8px）。Z保持：24tickごと通常弾。
X押下：12tick＝0.4秒だけ半径17の反射輪。保持で連続発動しない。
反射力は最大3。発動に1、90tick＝3秒ごと1回復。使用しても回復時計は戻らない。
再発動は36tick＝1.2秒後。画面の「輪」「再使用」「次の回復」は別々の値。
弾を返すと防壁が75tick＝2.5秒開く。その間に通常弾もコアを削れる。
返した弾は、到着前に壁が閉まっても認証弾としてコアへ届く。
赤い丸は敵弾、白い三角は通常弾、緑の菱形は返した弾。コアHP6、人HP3。
敵弾が人へ触れたら1減少、30tick連続被弾防止。反射失敗自体に罰はない。
コアを壊して生存で成功。同時にHP0なら敗北。時間制限なし。

P：時間ごと停止・説明。R：同じ編隊を初期化。1/2/3：編隊選択。
M：表紙。成功・失敗後N：次の編隊。SPACE：開始。Esc：終了。
状態切替後は操作キーを全て一度離す。射撃は保持、反射は新しい押下のみ。

3状況
A：中央の単発。返す時刻と、開いた壁へ撃つ練習。
B：左→中央→右。左を避け中央へ移り、返しやすい一発から攻めてもよい。
C：両端→予告時の人の位置→中央。狙い線が出た後も追尾はしない。
全発射は30tick前に予告。狙い弾もそこで位置を記憶する。未来の入力は読まない。

起動
Windows：Python3を用意しsetup.bat、成功後play.bat。
macOS/Linux：sh setup.sh、sh play.sh。
依存は標準ライブラリ＋Pyxel2.9.9。他作品とランタイムの結合なし。
普通に遊ぶためにPillow・ffmpeg・ネットワークは不要。
launch.shは制作環境用。配布先ではplay.shを使う。
日本語・空白パス、任意cwd、cp932既定読込の模擬回帰を実施。Windows実機未検証。

検証の再実行
python -m unittest discover -v
python solver.py
python app.py --demo --headless
python app.py --baseline （輪6tickの比較用反実仮想。他ルールは同じ）
MP4は実際のPyxel描画を自動操作した無音映像。人の試遊ではない。
再生入力・hashはsolver_results.json、設計の比較はEXPERIMENT.txtを参照。
日本語ビットマップはNoto Sans CJK由来。assets/NOTO-LICENSE.txtはSIL OFL。
音は実装なし。予告・反射・回復は視覚だけで読める設計。
