首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >*由json文件iphone构成的单层寻径算法

*由json文件iphone构成的单层寻径算法
EN

Stack Overflow用户
提问于 2012-03-01 10:48:40
回答 1查看 203关注 0票数 0

我正在尝试实现一个*寻路算法。我刚接触iphone开发,尤其是游戏方面。我想问一下,我有一个从json文件读取的平铺映射数组m。在NSArray中获取平铺地图的所有值。现在我想在上面实现一个*寻路算法。我是否必须自己创建A*寻路算法,并将输入作为NSArray,或者我们也有它的任何教程。我已经尝试了互联网,但得到了有关tmx文件的教程。有没有人可以给我发一些很好的教程或者示例代码,或者至少给我指引一个正确的方向。你们真是太好了。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-03-01 14:43:23

A*是一种核心应用于图的算法。在您的示例中,图形上的每个节点都对应于地图中的一个瓦片。

图中的每条边都对应于两个瓦片之间的邻接关系。

实现A*并不难,但它可能对您的使用有些过分。你需要考虑使用优先级队列,支持启发式等等。

在您的示例中,只要边上没有权重,简单的breadth-first-search就可以做到这一点。

粗略算法草图:

代码语言:javascript
复制
ShortestPath(start, goal):
    let queue = new Queue
    queue.Enqueue(start)
    while (queue is not empty):
        let node = queue.Dequeue()
        if (node == goal) 
            break;
        else
            for each adjacent node, aNode:
                // only add unvisited nodes
                if (aNode.previous == null)
                    aNode.previous = node
                    queue.Enqueue(previous)

    if (node != goal) return failure // we never found the goal, so there's no path

    // trace back your path into a list structure        
    let path = new List

    while (node != null):
        path.Add(node)
        node = node.previous

    // it's in a backwards order, so reverse it
    return path.Reverse()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9509936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档