gpt4 book ai didi

c# - C# 中特定案例中的 AStar

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:42 25 4
gpt4 key购买 nike

为了实习,我在以下情况下使用了A*算法:

  • 单元形状为高宽为1的正方形,
  • 我们可以从一个由矩形代表的区域出发从另一个区域出发,但我们不能离开这些预定义区域,
  • 我们可以通过一扇门从一个矩形转到另一个矩形,由相应方形边缘上的一段表示。

这是我已经做过但不让我的老板满意的两件事:

1 :我创建了以下类:-a Door 类,其中包含 2 个独立方 block 的位置和门的方向(顶部、左侧、底部、右侧),- 包含门列表的 map 类,代表可步行区域的矩形列表和代表地面正方形的二维数组(通过枚举获取额外信息)- A* 算法类(节点、AStar)

2:-一个 MapCase 类,它通过枚举包含有关案例效果和门的信息(设置 [FLAGS] 属性,以便能够累积每个案例的多个信息)-a 仅包含 MapCase 类的二维数组的 Map 类- A* 算法的类(仍然是 AStar 节点)。

由于第 2 版比第一个更好(无用计算更少,映射类架构更好),我的老板对我的映射类架构仍然不满意。

A* 和节点类很好并且易于维护,所以我认为我现在不必对它们进行更深入的解释。

所以这是我的问题:有没有人有一个好主意来实现带有问题规范的 A*(矩形可行走但单位面积为正方形,穿过门)?

他说问题的网格视觉(即二维数组)不应该是解决问题的正确方法。

我希望在暴露我的问题时我已经清楚了..

谢谢

风筝

最佳答案

您可以使用带加权边的节点,而不是多维数组。这非常适合您需要距离和连接的 A* 搜索。如果距离都为 1,那么您可以忽略权重。

关于c# - C# 中特定案例中的 AStar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2356770/

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