gpt4 book ai didi

c - 寻找重叠的算法

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

基本上,我有一些 Ship 类型的结构,它们将放置在宽度和高度可变的板上。有关船只的信息是从文件中读取的,我只需要知道确保没有船只重叠的最佳方法。

这是 Ship 的结构:

int x // x position of first part of ship
int y // y position of first part of ship
char dir // direction of the ship, either 'N','S','E' or 'W'
int length // length of the ship

此外,什么是处理方向的好方法。比使用 switch 语句并为每个方向使用不同的条件更简洁。

如有任何帮助,我们将不胜感激!

最佳答案

您可以保留整个网格的 bool 数组,最初初始化为“false”。对于每艘船,对于船覆盖的每个位置,检查该位置是否为“假”。如果是,将其设置为“真”。如果没有,那么其他船只就在该位置。

这个算法在所有船只的总面积上是线性的,但是也需要额外的空间与板上位置的数量成正比。

关于c - 寻找重叠的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2482225/

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