gpt4 book ai didi

c# - 二维网格的 .NET 集合?

转载 作者:太空宇宙 更新时间:2023-11-03 19:19:12 25 4
gpt4 key购买 nike

我将尝试编程游戏。我的游戏需要运行 A*传统游戏网格上的寻路算法。

例如:(S=Start, G=Goal, X=Wall)

-------------------------------
| | | | | | | | | G| |
-------------------------------
| | | | | | | | | | |
-------------------------------
| | X| X| X| X| | | | | |
-------------------------------
| | | | | X| | | | | |
-------------------------------
| S| | | | | | | | | |
-------------------------------

要实现 A*,我需要能够获得任何节点的“邻居”。 (例如,Start 有 3 个邻居(上方、对角线和右侧)。)

我想到的将其映射到数据层的方法是二维数组或链表。

数组似乎是性能最高且易于实现的。因此,如果 S[0][4],那么它的邻居将是 [0 + 1][4](右),[0][4 - 1](上方),[0 + 1][4 - 1](对角线)

但从事 .NET 应用程序开发已有几年,基本数组对我来说似乎有点老套。

所以在我走那条路之前,我想我会问是否有一个很好的 .NET 集合类型可以用来绘制网格(在数据层,而不是 UI)。

最佳答案

在这种情况下,数组听起来是正确的选择。请记住,所提供的大多数数据结构都试图提供不同的功能。

鉴于您唯一需要的抽象方法(邻居)是一个快速实现,没有理由使用任何更复杂的东西作为您的基础。

关于c# - 二维网格的 .NET 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13693638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com