gpt4 book ai didi

c# - 在 2D map 上查找满足多个条件的位置

转载 作者:行者123 更新时间:2023-12-03 23:16:28 24 4
gpt4 key购买 nike

作为我的个人项目,我开发了一款用户可以随时加入的游戏。我有一个从简单位图创建的平铺世界地图,该位图在整个 map 上的随机位置都有资源(海洋除外)。

当玩家加入时,我想在一个位置创建他的起始位置,该位置在范围内至少有 4 个资源中的每一个资源的 1 block (带有静止来决定直径的圆圈,我认为有 3-4 block ),但没有海洋瓷砖 (Tile.Type != "ocean") 并且不与属于另一个玩家的字段冲突 (Tile.Owner == null)。

map 大小可能会有所不同,目前为 600x450,它被实现为一个简单的数组:Tile[][],其中 Tile.Resource 为 null 或将 Tile.Resource.Type 作为资源名称的字符串(因为它是可配置的)通过纯文本文件来适应我想要放入的任何场景,因此不可能有内置枚举)。

我目前有一个循环,简单地遍历每个可能的位置,检查范围内的每个字段并计算每个资源字段的数量,如果其中一个没有,或者其中一个属于玩家或是一片海洋领域。

我希望它找到一个随机位置,但这不是要求,但单兼容性是一个要求。

在 C# 中实现该算法的最佳方法是什么?

编辑

玩家的区域可以将会增加/改变,资源可以用完,甚至可能随机出现(=>“你的探矿者发现了一个新的金矿”)因此预先计算的位置可能不起作用。

最佳答案

与其循环遍历所有位置,为什么不循环遍历所有资源呢?您的资源可能更加匮乏。然后选择一组符合您的聚类标准的资源。

关于c# - 在 2D map 上查找满足多个条件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2363689/

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