遊び方
- 点を動かす:矢印キーかWASDで自分の点が曲がります。スマホは盤面を指でなぞるか、下の十字ボタンを押してください。点は止まりません。曲がる方向だけを決めます。
- 自陣の外へ出る:自分の色のマスから出ると、通った跡が線として残ります。この線はまだ領地ではありません。
- 自陣へ戻る:自分の色のマスへ戻った瞬間、線と、線で囲まれた内側がまとめて自分の色になります。囲みの判定は「自分の領地で閉じているか」だけを見るので、相手の領地ごと囲めば中身も奪えます。
- 線を守る:まだ領地になっていない線に誰かが当たると、その線はまるごと消えて当たった側の領地になります。自分の線に自分で当たっても同じです。線を引いた本人は自陣の近くへ戻されます。
- ノコギリをよける:盤面には3枚のノコギリが決まった道を往復しています。刃に触れると線が消えて自陣の近くへ戻されます。消えた線は誰の領地にもならないので、相手が得をすることもありません。刃はプレイヤーの半分から3分の1の速さでしか進まないので、近づいてくるのを見てから避けられます。
- 広いほうが勝ち:制限時間が来た時点で、マスを多く持っているほうの勝ちです。途中でどちらかの領地が完全に無くなれば、その時点で決着します。
このゲームで効く考え方
- 大きく囲むほど、切られたときに失うものが増える
- 線は自陣へ戻るまで領地になりません。10マスぶん伸ばした線を切られると、その10マスがそのまま相手の領地になります。攻めの深さは、そのまま相手に渡す量でもあります。
- 相手の線は、待ち伏せて取る
- 相手が自陣の外へ出ている時間が、こちらの取り分になります。相手が深く入り込むのを待ってから線に触れると、一度に大きく取れます。
- 細く囲むと速く、太く囲むと安全
- 自陣に沿って薄く囲むと、外に出ている時間が短いぶん切られにくくなります。取れる面積は小さくても、確実に積み上がります。
- 領地は削られる
- 相手が自分の領地を囲むと、その中身は相手のものになります。広げたら終わりではなく、形も守る対象です。角が深く食い込んだ形は囲まれやすくなります。
- ノコギリの道を、線の通り道にしない
- 刃は決まった道を往復するだけなので、通る場所は最初から分かっています。刃の道をまたぐように線を引くと、自陣へ戻る前に切られます。刃の道の手前で折り返すか、刃が反対の端へ行っているあいだに一気に渡るかの二択になります。刃は相手の線も同じように切るので、相手が刃の道をまたいだ瞬間はこちらの好機でもあります。
第三の要素をどう入れたか
このゲームの進行は、もともと登場するのが厳密に2体である前提で書かれていました。順番による有利不利を消すために、1 tick のなかで先に動く側を交互に入れ替えています。ここへ3体目を足すと、同着と衝突の解決順序をもう一度決め直すことになります。今回いちばん壊れやすかったのはそこです。
決めたことは3つです。
- ノコギリは領地を持たない:持たせると3人目の陣取りになって、「2人の取り合い」という軸そのものが変わります。刃にできるのは、通りかかった線を切り落とすことだけです。切られた線は誰の領地にもならず、ただ消えます。
- 2人が動き終わったあとに、まとめて1回だけ動かす:こうすると規則が1文で言えます。「自分が動いた先へノコギリが来たら当たる」。プレイヤーどうしの先手後手とは独立なので、どちらが先に動いた tick でも刃の当たり方は変わりません。2体前提のループをN体へ一般化する道もありましたが、影響範囲が盤面の解決全体へ広がるので採りませんでした。
- すれ違いも当たりに数える:刃とプレイヤーが向かい合って進み、位置が入れ替わった場合も当たりです。数えないと、その tick だけ刃をすり抜けられて「刃の上を通ったのに何も起きない」が起きます。
軌道は決め打ちの往復にしました。追尾させると線を伸ばすこと自体ができなくなり、相手の動きと合わせて読む余地が消えます。乱数も使っていないので、同じ操作をすれば刃の位置まで含めて必ず同じ展開になります。
何が起きたかを、色と動きで出す
盤面はマスの色でしか語らないので、「いま何が起きたか」は別に出す必要があります。入れてあるのは次のとおりです。
- 塗りつぶしの伝播:囲みが決まると、内側が中心から外へ順に光ります。マスの持ち主自体は即座に変わるので、これは「どこまで取れたのか」を面で見せるためだけの演出です。一度に何千マス取ったときでも粒の数が跳ねないよう、同時に光らせるマスには上限を置いています。
- 破片の飛散:線を切られた瞬間に粒が散ります。散る向きは黄金角で振り分けているので、等間隔よりも均等に散って見えます。
- ヒットストップと画面の揺れ:切られた瞬間・囲みが決まった瞬間に、ごく短いあいだ盤面が止まって画面が揺れます。盤面が進む時間は1 tick ぶんずつしか進まないので、ここで実時間を止めても展開は変わりません(同じ操作なら同じ盤面、は保たれます)。
- ノコギリの回転と火花と焦げ跡:刃は歯を回しながら進み、切った瞬間に注意色の火花を散らします。通った跡は数秒だけ焦げて残るので、通り過ぎたあとでも道が読めます。
- 決着の寄り:決まった瞬間に自分の点へ少し寄ってから戻ります。
色の割り当ては、自分=青・相手=赤・ノコギリ=注意色(金)です。刃はどちらの味方でもないので、青にも赤にも寄せていません。
動きを減らす設定(prefers-reduced-motion: reduce)にしている場合は、揺れ・寄り・ヒットストップを止め、粒の数も減らします。色と位置は変えないので、遊ぶのに要る情報は1つも落ちません。筐体まわりの動きはCSS側で、盤面の中の動きはJS側で、同じ設定を読んで切り替えています。
作りの話
囲みの判定は、線の形を多角形として扱っていません。盤面の外側から「自分の領地ではないマス」だけを辿って塗り広げ、最後まで塗られなかったマスを自分のものにしています。こうすると、線が複雑な形でも、内側に相手の領地が混ざっていても、同じ1つの手順で正しく判定できます。
乱数は一切使っていません。相手の動きも、ノコギリの軌道も、盤面の状態だけから決まるので、同じ操作をすれば必ず同じ展開になります。相手の手を読んで対策を組み立てられること、そして記録を競う土台になることが理由です。
よくある質問
- 点を止められますか?
- 止められません。決められるのは曲がる方向だけです。壁に向かうと、進める側へ自動で曲がります。
- 相手の領地の上を通れますか?
- 通れます。相手の領地の上でも線は伸び続けます。そのまま囲んで自陣へ戻れば、相手の領地を奪えます。
- ノコギリは何をしますか?
- 盤面には3枚のノコギリが決まった道を往復しています。2人のどちらの味方でもない中立の障害物で、領地は持ちません。できることは1つだけで、通りかかった線を切り落とします。刃に触れると自分の線が消えて自陣の近くへ戻されますが、消えた線は誰の領地にもなりません。相手が得をすることもない、という点が相手に切られたときとの違いです。刃はプレイヤーの半分から3分の1の速さでしか進まず、軌道も決まっているので、近づいてくるのを見てから避けられます。ノコギリは2人が動き終わったあとにまとめて1回だけ動くので、どちらが先に動いた瞬間でも当たり方は変わりません。
- 画面の動きが激しいのですが、抑えられますか?
- 抑えられます。お使いの環境で「視差効果を減らす」「アニメーションを減らす」に相当する設定(prefers-reduced-motion: reduce)を有効にしていると、画面の揺れ・決着の寄り・ヒットストップが止まり、飛び散る粒の数も減ります。マスの色と点の位置は変わらないので、遊ぶのに必要な情報は1つも落ちません。
- 記録は何が残りますか?
- 決着した時点で自分が持っていたマス数です。全国ランキングにも同じ数で載ります。