私はこのボードとして六角グリッドを持つボードゲームに取り組んできました:
ボードは決して変更されず、ボード上のスペースは常にその周りの他の同じスペースにリンクされるため、必要な値ですべてのスペースをハードコーディングする必要がありますか?または、さまざまなアルゴリズムを使用してリンクとトラバーサルを計算する必要がありますか?
具体的には、私のボードゲームは4プレイヤーゲームで、各プレイヤーは5x5x5x5x5x5の16進グリッドを持っています(ここでも、上の画像を参照)。目的は、さまざまな障害物を邪魔して、グリッドの一番下から一番上に到達することです。各プレイヤーは、範囲乗数に基づいて、グリッドの端から他のプレイヤーに互いに攻撃できます。
プレーヤーのグリッドは決して変化せず、グリッドの端からの任意のスペースの距離は常に同じであるため、この数値を各スペースにハードコードするか、または幅優先検索アルゴリズムを使用する必要がある場合プレイヤーが攻撃していますか?
すべてをハードコーディングする場合に考えられる唯一の欠点は、9 + 2(5 + 6 + 7 + 8)= 61の個別のセルをコーディングすることです。他に、もっと複雑なアルゴリズムを使用することを検討する必要がある見逃しているものはありますか?
int numberOfHexagonsInArea(int rows) { int area = 1; while(rows>0) { area += (rows-1)*6; rows--; } return area; }
{X,Y}
あなたは明らかに行くことができる {X-1, Y}
し、{X+1, Y}
同じ行に。下記および上記の行では、あなたがに行くことができる{X, Y-1}
と{X, Y+1}
。最後に、偶数らしさに応じてY
、あなたに行くことができる{X-1, Y-1}
し、{X-1, Y+1}
または、{X + 1、Y-1} `と{X+1, Y+1}