作品には2Dタイルベースの戦略があります。マップとマップ上のユニットとの関係をどのように処理するか迷っています。
タイルの座標を考えると、もしあれば、その上にユニットを立てられるようにする必要があります。同時に、ユニットが指定されている場合、そのユニットの座標を取得できるようにしたいと思います。
これに対する2つの解決策を見てきました。最初の解決策は、ユニットに座標を格納させ、マップにユニット参照をタイルに格納させることです。これにより、マップとユニットの間に循環依存関係が作成されます。ユニットが移動した場合、マップと任意のユニットが同期していることを確認する必要があります。
2番目の解決策は、ユニットに座標のみを追跡させることです。タイルにユニットが含まれているかどうかを確認し、そのユニットを取得するには、ユニットユニットのセット全体をループして、座標が一致するユニットを見つけます。これは循環依存関係を解消しますが、最初のソリューションがマップからユニットを検索するために持っていたO(1)プロパティを失います。これは、経路の検索、移動範囲の決定、特定のユニットの有効なターゲットの検索などの目的で定期的にマップをスキャンできるようにしたい場合に加算されます。
また、ユニットをマップに格納することもできません(または格納できますか?)。ユニットは、プレーヤーまたはAIの「軍隊」に関連付けられています。軍は、そのすべてのユニットに簡単にアクセスして反復できる必要があります。
これは戦略ゲームでは一般的な問題のようですが、ユニット/マップの関係を管理するために説明した2つのパターン以外に他のパターンはありますか?