← 課題一覧

クレー射撃

射撃場に立ち、放出機から飛ぶ皿(クレー)を散弾銃で撃ちます。1 ラウンド 25 枚。3D はライブラリを使わず自分で書きました——上下左右に回るカメラ、皿の放物線、円錐に広がる散弾の当たり判定、弾が届く時刻の位置を狙う先読み。音を出してお使いください。

0/25 枚 ・ 命中 0 ・ 点 0 ・ 連続 0 ●● ・ ベスト 0 コマ/秒

 


    

やること:「スタート」のあと、合図(ピッ)で皿が飛びます。← → ↑ ↓(または画面をなぞる)で照準を動かし、「撃つ」(画面タップ・スペース)で 1 発。1 枚につき 2 発まで。
  1. 先を狙う:弾が届くまでの間に皿は動きます。飛ぶ向きの少し前を撃つ。
  2. 散弾は円錐に広がります(30 m 先で半径 1.7 m)。中心に近いほど 粉々(3 点)→ 割れる(2 点)→ かする(1 点)
  3. 鳥が飛んできます(1 ラウンドに 2 回以上)。撃ってはいけません。当てると破裂しますが点にならず、弾を 1 発むだにします。
  4. 連続で当てると連続数が出ます。25 枚の命中数と点のベストがこのブラウザに残ります。
上下左右のカメラ:yaw と pitch で世界を逆に回す 放物線:重力と空気抵抗(皿は揚力で落ちにくい) 円錐の当たり:視線と皿への向きの角度 ÷ 広がり 先読み:弾が届く時刻の皿の位置で判定

Python を読み込んでいます… (初回は数秒かかります)

このページは Python のコードがブラウザの中でそのまま動いています(PyScript)。 カメラ・皿の物理・当たり判定・ラウンドの進行・描く処理は CLI 版と 1 文字も違いません。 端末は 128 × 80 ドットを ▀ の並びで、ここでは同じ式を 5 倍の板(640 × 400)で回して canvas に出しています。