いくつかのメンバーstruct
を含む があり、リストから最も低い値を取得しようとしています (実際には、A* 検索ベースのパス ファインダーを作成しています)。int
bool
基本的に、私のオブジェクトは次のようになります。
public struct Tile
{
public int id;
public int x;
public int y;
public int cost;
public bool walkable;
public int distanceLeft;
public int parentid;
}
そして、distanceLeft が最も小さいアイテムを取得したいと考えています。リストは次のように宣言されます。
List<Structs.Tile> openList = new List<Structs.Tile>();
値は次のように割り当てられます。
while (pathFound == null)
{
foreach (Structs.Tile tile in map)
{
foreach (Structs.Tile tile1 in getSurroundingTiles(Current))
{
if (tile1.x == tile.x && tile1.y == tile.y)
{
Structs.Tile curTile = tile1;
curTile.parentid = Current.id;
curTile.distanceLeft = (Math.Abs(tile.x - goalx) + Math.Abs(tile.y - goaly));
if (curTile.distanceLeft == 0)
{
pathFound = true;
}
openList.Add(curTile);
}
}
}
foreach (Structs.Tile tile in openList)
{
}
}
推測する必要があるとすれば、これは非常に難しいか、私が思っているよりもはるかに複雑であるか、信じられないほど簡単で混乱していると言えます。
リストをスクロールして、各アイテムを下位のアイテムと比較することを考えましたが、私たちの時代を考えるとそれは不合理に思えます。もっと簡単な方法があるようです. リストの順序は気にしません。各アイテムに、それを呼び出すことができるインデックスを割り当てているからです。
前もって感謝します!