| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2253 人关注过本帖, 2 人收藏
标题:迷宫专题
只看楼主 加入收藏
demonforlinu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-9-27
收藏
得分:0 
给力啊,顶顶
2011-09-27 22:49
北魂狼
Rank: 2
等 级:论坛游民
帖 子:4
专家分:15
注 册:2011-4-29
收藏
得分:0 
好好,学习一下
2011-09-28 16:37
绿茶盖儿
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:363
专家分:1852
注 册:2011-9-3
收藏
得分:0 
学习了
2011-09-28 21:53
世界模型
Rank: 4
等 级:业余侠客
威 望:1
帖 子:240
专家分:226
注 册:2010-9-12
收藏
得分:0 
占座 顶顶
2011-09-30 10:41
quanxiaofly
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-10-1
收藏
得分:0 
哈哈,我来占个位置!
2011-10-01 13:50
sheshou
Rank: 1
来 自:河南 信阳
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-9-22
收藏
得分:0 

非常感谢
2011-10-01 16:04
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
收藏
得分:0 
高手啊 学习了
2011-10-01 18:15
yujijj123
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-25
收藏
得分:0 
2011-10-01 22:38
yujijj123
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-25
收藏
得分:0 
2011-10-01 22:38
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
以下是引用BlueGuy在2011-9-25 13:07:23的发言:

我刚才也写了一个, 不过我只对4个方向搜索
h = f + g
// 结点初始化
void AStarNodeInit(AStartListNode* current, AStartListNode* father, int x, int y, int endX, int endY)
{
    current->x = x;
    current->y = y;
    current->father = father;
    current->next = NULL;

    if (father != NULL)
    {
        current->f = father->f + 1;
    }
    else
    {
        current->f = 0;
    }

    current->g = abs(endX - x) + abs(endY - y);
    current->h = current->f + current->g;
}

你在搜索8个方向的时候,写的繁琐了
int offsetX[] = { 0, -1, 0, 1 };
int offsetY[] = { -1, 0, 1, 0 };
            
for (i = 0; i < sizeof(offsetX); i++)
{
    x = current->x + offsetX;
    y = current->y + offsetY;

    if (x < 0 || x >= mapWidth || y < 0 || y >= mapHeight)
    {
        continue;
    }
}

代码的正确性可以保证,置顶一下,一起学习学习 laoyang 的代码.,


又见版主,求qq号~~
2012-01-01 23:04
快速回复:迷宫专题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023688 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved