- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
对于游戏 (WPF),我需要创建一个 map 编辑器。 map 由 4x3 map 字段的矩阵定义。当用户编辑 map 时,他可以启用和禁用每个字段,以此定义 map 的外观。现在 map 只有在每个字段都连接到另一个字段时才有效。 IE。此 map 有效(蓝色为事件状态,灰色为非事件状态):
我有一个带有 map 字段的二维数组。每个字段都有一个 boolean
值,用于定义它是否处于事件状态。为了检查 map 是否有效,我编写了以下方法:
private bool IsMapPlayable()
{
int numberOfActiveFields = 0;
for (var row = 0; row < this.GameFields.Length; row++)
{
for (var col = 0; col < this.GameFields[row].Length; col++)
{
if (!this.GameFields[row][col].IsActive) continue;
numberOfActiveFields++;
if (!(row > 0 && this.GameFields[row - 1][col].IsActive)
&& !(row + 1 < this.GameFields.Length && this.GameFields[row + 1][col].IsActive)
&& !(col > 0 && this.GameFields[row][col - 1].IsActive)
&& !(col + 1 < this.GameFields[row].Length && this.GameFields[row][col + 1].IsActive)
&& numberOfActiveFields > 1)
{
return false;
}
}
}
return numberOfActiveFields > 0;
}
此方法仅检查每个字段是否具有直接事件的相邻字段(并且具有恰好 1 个事件字段或多于 1 个事件字段)。不幸的是,使用这种方法,以下 map 也是有效的:
但是这些 map 应该是无效的。检查 map 是否有效的最有效算法是什么?
最佳答案
一对方法:
执行BFS来自任何事件单元格,并在结束后检查所有事件单元格是否已标记
使用union-find data structure (你不需要对这么小的网格进行任何优化),插入具有事件邻居的事件单元格,并检查是否只有一个连接的组件
关于c# - 检查二维数组中相连邻居的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22115526/
我从 SpatialPolygonsDataFrame 开始,它包含用于创建加纳各地区 map 的数据(可在 http://www.diva-gis.org/datadown 获取)。我正在尝试创建一
我遇到了一个问题,我需要根据存储在前一个元素中的信息修改容器的元素。示例: 如果前一个 vector 元素可被 2 整除,则将当前元素乘以 10 vector -> [12, 11, 33, 10]
总的来说,我对脚本编写还很陌生。我正在编写一个 expect 脚本,它通过 ssh 进入 Cisco 交换机,并运行“show cdp neighbors”命令来获取连接到交换机的所有设备的列表。然后
我正在尝试比较节点的值。使用 flood-fill 算法,我能够垂直和水平检查网格的每个节点。现在我必须更新我的代码以检查位于对 Angular 线上的单元格,如下图所示: 红色是当前节点,黄色是需要
我使用预先计算的指标使用 Scikit-Learn 的最近邻/半径分类。这意味着,我将成对距离的 n_samples_train x n_samples_train 矩阵传递给分类器的拟合方法。 现在
我有一个大的稀疏图,我将其表示为邻接矩阵(100k x 100k 或更大),存储为边数组。具有(非稀疏)4 x 4 矩阵的示例: 0 7 4 0 example_array = [ [7,1,2],
从有向图中并给出两个顶点 (v, u) 我需要找到:共同的“出”邻居和共同的“入”邻居。 例如: import networkx as nx ghybrid = nx.DiGraph() ghybri
我正在使用 JavaScript 进行图像处理,我想知道是否有任何通用公式可以确定像素的 x 邻居。 我知道对于 3*3 的正方形,可以使用特定的 x 和 y 像素确定 8 个邻居。 (x-1,y-1
在 CentOS 6.4(内核 2.6.32)上,为什么下面的第二个 arping 调用会创建一个新的 ARP 表条目,而第一个不会?网络行为是相同的,我感到困惑的是,在我看来,系统调用实际上是等同的
我是一名优秀的程序员,十分优秀!