質問: ### 前提・実現したいこと カタンの開拓者たちのように6角形のマス状の盤面を持つゲームはよくあると思います。 このような6角形のマス状の座標系、この質問では6角座標系としますが、このような座標系はどのようなデータ構造で表現するのでしょうか?
回答: 見た目が蜂の巣状であっても、プログラムのロジック的には四角い格子状とほとんど同じにできるかと思います。隣り合ったタイルがどの位置にあるかさえ気をつければ、経路探索なども問題なく行えるでしょう。 イメージ的には、あるタイルと隣り合ったタイルは下図の位置にあると見なすことにすれば、蜂の巣状格子を正方形格子に置き換えることができるのではないでしょうか。 !蜂の巣→正方形 他にも、戦略SLGをつくる:Hex(ヘックス)マップの座標系構造では飛び飛びの座標系が紹介されています。スプレッドシートソフトでマップを編集するのが容易だというのは魅力的ですね。 !飛び飛び座標系 また、Hexagon grids: coordinate systems and distance calculations - keekerdc.comにもいろいろな座標の取り方が紹介されていましたが、個人的には最後の方で紹介されている3成分による座標が面白いと思いました。2タイル間の距離が、成分ごとの差の絶対値の最大値になるという仕組みが興味深かったです。 !XYZ座標系