土地が「隣り合っている」状態はどう表現する?
Posted: 2017年5月22日(月) 20:10
今、C++で戦略ゲームを作ろうとしています。イメージとしては、すずぬーとさんの「都道府県対戦」やParadox社の「Hearts of Iron」シリーズです。
そして、まず初めに、土地のシステムをどうしようかと考えました。領土の最小単位一つ一つの事を「プロヴィンス」として話していきたいのですが(都道府県一つ一つのようなものです)、
早速壁にぶち当たりました。プロヴィンス情報をどのように処理するかです。
戦略ゲームでは、とあるプロヴィンスから別のプロヴィンスへ、侵攻、移動、援助などに行きますが、直接行くには隣り合っていないといけません。
そこで、「プロヴィンスAとプロヴィンスBは隣り合っている」という状態を取得する必要があると思うのですが、その方法に全く見当がつかないんです。
オセロの様な盤であれば、「縦と横は隣り合っている、斜めは隣り合わない」と明言できますが、土地というのは、隣り合うプロヴィンスが一個だったり、5個や6個とつながっていたり、様々です。
なので、そういった単純なアルゴリズムでは難しいと思い、色々と考えたのですが、これといったものがありません。
ネットでも出来る限り探してみたのですが、地形をランダム生成など、あまり関係のない記事ばかりで中々参考になるサイトが見つけられませんでした。
プロヴィンス一つ一つについて、隣り合うプロヴィンスを書いていってもいいのですが、もし後になって、「大きな川があって渡れない」「プロヴィンスを一つ増やそう」と思ったときに、直すのがとても面倒だと思うんです。
質問としては、「どのようにして隣り合う状態を表現するか」という事になるのですが、どなたかご教授よろしくお願いいたします。
そして、まず初めに、土地のシステムをどうしようかと考えました。領土の最小単位一つ一つの事を「プロヴィンス」として話していきたいのですが(都道府県一つ一つのようなものです)、
早速壁にぶち当たりました。プロヴィンス情報をどのように処理するかです。
戦略ゲームでは、とあるプロヴィンスから別のプロヴィンスへ、侵攻、移動、援助などに行きますが、直接行くには隣り合っていないといけません。
そこで、「プロヴィンスAとプロヴィンスBは隣り合っている」という状態を取得する必要があると思うのですが、その方法に全く見当がつかないんです。
オセロの様な盤であれば、「縦と横は隣り合っている、斜めは隣り合わない」と明言できますが、土地というのは、隣り合うプロヴィンスが一個だったり、5個や6個とつながっていたり、様々です。
なので、そういった単純なアルゴリズムでは難しいと思い、色々と考えたのですが、これといったものがありません。
ネットでも出来る限り探してみたのですが、地形をランダム生成など、あまり関係のない記事ばかりで中々参考になるサイトが見つけられませんでした。
プロヴィンス一つ一つについて、隣り合うプロヴィンスを書いていってもいいのですが、もし後になって、「大きな川があって渡れない」「プロヴィンスを一つ増やそう」と思ったときに、直すのがとても面倒だと思うんです。
質問としては、「どのようにして隣り合う状態を表現するか」という事になるのですが、どなたかご教授よろしくお願いいたします。