ゲームのプログラミングに挑戦します。私のゲームでは、従来のゲームグリッドでA*パスファインディングアルゴリズムを実行する必要があります。
たとえば、次のようになります:(S =開始、G =目標、X =壁)
-------------------------------
| | | | | | | | | G| |
-------------------------------
| | | | | | | | | | |
-------------------------------
| | X| X| X| X| | | | | |
-------------------------------
| | | | | X| | | | | |
-------------------------------
| S| | | | | | | | | |
-------------------------------
A *を実装するには、任意のノードの「ネイバー」を取得できる必要があります。(たとえば、Startには3つのネイバー(Above、Diagonal、Right)があります。)
これをデータレイヤーにマッピングするために頭に浮かぶ方法は、2次元配列またはリンクリストです。
アレイは最もパフォーマンスが高く、簡単に外せるようです。したがって、もしそうなら、その隣人はS
(右)、(上)、(対角)になります[0][4]
[0 + 1][4]
[0][4 - 1]
[0 + 1][4 - 1]
しかし、.NETアプリケーションの開発を数年間行ってきたので、基本的な配列は私には少し古い学校のように思えます。
そのため、その道を進む前に、グリッド(UIではなくデータレイヤー)をマップするために使用できる優れた.NETコレクションタイプがあるかどうかを尋ねると思いました。