なんかHEXマップでミニゲーム作りたいなの会

ルール

ランダム座標にゴール(ラブレター)が設置される
移動力は1ターンに2歩
先にゴールにたどり着いた方が勝ち
同着の場合、プレイヤーが勝ち

ラウンドの最初に妨害植物を設置できる
キャラの居ないマスに設置可能(※)
妨害植物の上は移動できず
その周辺は1歩しか歩けない(ZOC)

全5ラウンド(ラウンド数は後で変えるかも)
ポジションは継続

全ラウンド勝利でクリア
1回でも負けたらおしまい

隠しエンド条件:
バイソンの隣にラブレターが落ちてる、など
詰みの状態でラウンドが始まる場合
バイソンの上に妨害植物を設置可能
その場合、バイソンを殺して勝利となる

シナリオ

「あぁっ!
 深夜テンションで書き連ねた
 ラブレターが!!!」

バイソンより先に
風に飛ばされたラブレターを全部集めよう!!

1ターンに2歩歩けます
ラブレターの座標にたどり着いたら勝ちです
同着の場合、サイさんの勝ちです

合計5枚(5ラウンド)あります
1枚でも取られたらおしまいです

各ラウンドの最初に、妨害植物を1本設置できます
植物のマスは移動できません
植物の周囲1マスは1歩しか歩けません

エンディングは全部で3種類あります

勝利

負け

特殊エンド

スクリプトメモ

const tiles = [
{ "q": 0, "r": 1 },
{ "q": 0, "r": 2 },
{ "q": 0, "r": 3 },
{ "q": 1, "r": 0 },
{ "q": 1, "r": 1 },
{ "q": 1, "r": 2 },
{ "q": 1, "r": 3 },
{ "q": 2, "r": -1 },
{ "q": 2, "r": 0 },
{ "q": 2, "r": 1 },
{ "q": 2, "r": 2 },
{ "q": 2, "r": 3 },
{ "q": 3, "r": -1 },
{ "q": 3, "r": 0 },
{ "q": 3, "r": 1 },
{ "q": 3, "r": 2 },
{ "q": 4, "r": -2 },
{ "q": 4, "r": -1 },
{ "q": 4, "r": 0 },
{ "q": 4, "r": 1 },
{ "q": 4, "r": 2 },
{ "q": 5, "r": -2 },
{ "q": 5, "r": -1 },
{ "q": 5, "r": 0 },
{ "q": 5, "r": 1 },
{ "q": 6, "r": -3 },
{ "q": 6, "r": -2 },
{ "q": 6, "r": -1 },
{ "q": 6, "r": 0 },
{ "q": 6, "r": 1 },
{ "q": 7, "r": -3 },
{ "q": 7, "r": -2 },
{ "q": 7, "r": -1 },
{ "q": 7, "r": 0 },
{ "q": 8, "r": -3 },
{ "q": 8, "r": -2 },
{ "q": 8, "r": -1 },
];