voronoi.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:Maps 作者: DarkPurple141 项目源码 文件源码
def _make_river(river_source,centre):
    seen = set()
    start = random.choice(river_source.vertices)
    seen.add(start)
    start.river = True
    river_list = []
    river_list.append(start)
    q = queue.Queue()
    q.put(start)

    exceptions = []

    while not q.empty():
        curr = q.get()
        next_item = None
        for v in curr.v_neighbours:
            if v in seen:
                continue
            seen.add(v)
            if v and ((v.elevation <= curr.elevation or ((curr.elevation<2) and v.elevation>4)) and __centre_dist_inc(curr,v,centre)) and (v.elevation >= 0):
                next_item = v

        if next_item:
            if len([i.terrain for i in next_item.neighbours if i.terrain <0]) > 1:
                break
            else:
                q.put(next_item)
                if next_item.river:
                    exceptions.append(next_item)
                next_item.river = True
                river_list.append(next_item)

    if len(river_list) < 11:
        for i in river_list:
            if i not in exceptions:
                i.river = False
        return


    return river_list
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号