首页 > 解决方案 > While 循环查看给定节点的邻居以查看它们是否符合条件

问题描述

我有一组 X、Y、Z 值。X 和 Y 是坐标,Z 是从各自的 X 和 Y 计算的值。

我正在尝试编写一个从给定节点开始的代码,查看节点邻居以查看它们的 z 值是否符合某个标准(> 然后是某个最小值但 < 某个最大值)。对于每个通过条件的节点,该节点将在数组中被屏蔽,然后对该节点执行相同的过程(在该过程中检查所有邻居以查看是否满足条件)。当到达另一个已知值的节点或到达网格边缘时,while 循环结束。

我已经开始编写代码了。我有一个邻居函数,它创建一个与给定节点相邻的所有节点的子数组:

def neighbors(arr, x, y):
    return (arr[x-1:x+2,y-1:y+2,:])

我正在尝试完成逻辑如下的算法:

从起始节点开始

而感兴趣的节点(x,y)不等于结束节点(x,y)

找到节点的邻居,如果 z1 <startingnode(z) < z2

屏蔽每个通过的节点,然后执行相同的邻居搜索/标准比较

结果输出是一个数组,其中所有满足起始节点和结束节点之间条件的节点都被屏蔽。该代码的主要目的是识别满足条件的两点之间的路径上的所有节点。

我正在描绘一个带有计数器的 while 循环,但很难对其进行编码。任何帮助将不胜感激。

标签: pythonarrayspathgridnodes

解决方案


推荐阅读