将网格位置增加一个数字,随机拆分等于该数字的 x 和 y

Increase Grid position by a number, randomly split over x & y that equal that number

我使用 pygame 创建了一个路径查找算法 visuliser,它显示了 A* Vs。 Dijkstra 算法。

起始节点、结束节点和障碍物都是随机放置的

def generate_num(x, y):
    return randint(x, y)
....
....
 for x in range(0, density):
        row_pos = generate_num(0, rows - 1)
        col_pos = generate_num(0, rows - 1)
        node = grid[row_pos][col_pos]
        if not start and node != end:
            start = node
            start.makeStartNode()

        elif not end and node != start:
            end = node
            end.makeEndNode()

        elif node != end and node != start:
            node.makeObstacle()

为了评估,我的算法限制了开始节点和结束节点之间的距离(对于小型、中型和大型),因此需要使结束节点例如 (10,30,50) 个网格块远离.

但是我不希望它均匀分布 grid[x][y] 我希望它是随机的。

因此,如果距离设置为 50,grid[x][y] 可以是 grid[17][33]grid[10][40]grid[25][25],但加起来总是相距 50 个节点

makexxxNode()函数只是改变了节点的颜色以直观地识别其类型。

就像@hilberts_drinking_problem所说的那样简单 y = 50 - x 因为 x 是随机数。