私の目標は、(非常に単純な) 戦略ゲームを実装することです。
とりあえず、マップと 2 人のキャラクターから始めて (地形の影響が異なるようにしたい)、パスファインディングを試してみます。
問題は、オブジェクト指向設計の経験がほとんど、またはまったくないことです。以前に C++ クラスを使用したことがありますが、それは非常に簡単でした。たとえば、AStar メソッドを使用して、セットの配列を使用して実装されたクラス Graph です。「複数のプレイヤー」という概念は考えていませんでした。
次の要素/クラスを考えました: ゲーム、マップ、およびキャラクター。最終的にはパスファインダークラス。
最初の質問: キャラクターの位置は、ゲームが知っておくべきことですか? 地図?それとも各キャラ?
(私はゲームがすべきだと思います)
2 番目の質問: 「findPath」メソッドに適しているのはどこですか?
ゲーム?
経路探索アルゴリズムは Map のメソッドであるべきですか? map.findPath(character, srcpos, dstpos) のようなもの
キャラクタークラスで?character1.findPath(map, srcpos, dstpos) を実行する方が理にかなっています
Pathfinder クラスを追加した場合、最短パスを決定するためにマップの独自の表現を作成する必要があります。その前に、地形が各プレイヤーにどのように影響するかをマップに「尋ねる」必要があります。
(私は後者の方が好きです)
適用する補助構造の構築 (およびマップへの要求) のようです。たとえば、A* は避けられないものです。