| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3978 人关注过本帖
标题:闲的无事, 写了一个控制台的 A*,求破解高手(哈哈)
只看楼主 加入收藏
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
结帖率:94.72%
收藏
已结贴  问题点数:20 回复次数:62 
闲的无事, 写了一个控制台的 A*,求破解高手(哈哈)
Astar.rar (28.52 KB)

图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 BlueGuy 于 2011-9-25 12:33 编辑 ]
搜索更多相关主题的帖子: 控制台 
2011-09-25 12:13
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:2 
看看
2011-09-25 12:14
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:2 
这是个什么东东?

愿用余生致力编程
2011-09-25 12:15
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
貌似第一次运行就死循环了。


[ 本帖最后由 czsbc 于 2011-9-25 12:21 编辑 ]
2011-09-25 12:18
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 4楼 czsbc
是有个bug, 我忘了清0,

我就是真命天子,顺我者生,逆我者死!
2011-09-25 12:21
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:2 
破解就算啦  不知道楼主的估价函数是怎么写的

                                         
===========深入<----------------->浅出============
2011-09-25 14:22
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 6楼 laoyang103
在你的帖子里回复了,也置顶了...
我写的那游戏搜索比较简单, 不需要8个方向搜索,
搜索4个方向就行了,
如果地图没有 障碍物 的话,都可以不用搜索的,
直接坐标值加减都可以伪装一个AI出来

void AStarNodeInit(AStartListNode* current, AStartListNode* father, short x, short y, short endX, short 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;
}


[ 本帖最后由 BlueGuy 于 2011-9-25 15:45 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2011-09-25 14:25
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:2 
么得 code?
2011-09-25 14:54
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 8楼 Devil_W
正找人破解出代码呢...

不过,可以给接口, 你如果不相信是 A*,可以写个 BFS,比比速度嘛
/**
 * Title: A* algorithm
 * Author: BlueGuy
 */

// 路径结构
typedef struct tagAStartPaht
{
    // 结点 x 坐标
    short x;

    //结点 y 坐标
    short y;
} AstarPath;

//路径长度
short astarPathCount;

// 路经表
AstarPath* astarPath = NULL;

// 链表结点结构
typedef struct tagAStartListNode
{
    // 结点 x 坐标
    short x;

    // 结点 y 坐标
    short y;

    // 当前结点到起始结点的代价
    short f;

    // 当前结点到目标结点的代价
    short g;

    // 总代价
    short h;

    // 当前结点父结点
    struct tagAStartListNode* father;

    // 当前结点子结点
    struct tagAStartListNode* next;
} AStartListNode;

// A*算法结构
typedef struct tagAStar
{
    // open 表
    AStartListNode* openHead;

    // closed 表
    AStartListNode* closedHead;
} AStar;

/**
 * A*初始化
 */
AStar* newAstar()
{
}

/**
 * A*释放
 */
void deleteAStar(AStar* astar)
{
}

/**
 * 结点初始化
 */
void AStarNodeInit(AStartListNode* current, AStartListNode* father, short x, short y, short endX, short endY)
{
}

/**
 * 取得成本最小的结点
 */
static AStartListNode* AStarGetMinCostNode(AStar* astar)
{
}

/**
 * 添加结点到链表
 */
static void AStarAddNode(AStartListNode* head, AStartListNode* node)
{
}

/**
 * 从链表中删除结点
 */
static void AStarRemoveNode(AStartListNode* head, AStartListNode* node)
{
}

/**
 * 检查Tile是否在链表中
 */
static short AStarIsInList(short x, short y, AStartListNode* head)
{
}

/**
 * 检查Tile是否是地图的路障
 */
static short AStarIsBlock(short x, short y)
{
}

/**
 * 查找路径
 */
int AStarSearch(char map[][10], short mapWidth, short mapHeight,
              short startX, short startY, short endX, short endY, AstarPath* astarPath)
{
}

[ 本帖最后由 BlueGuy 于 2011-9-25 15:17 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2011-09-25 15:01
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
什么叫破解出代码。。
2011-09-25 15:14
快速回复:闲的无事, 写了一个控制台的 A*,求破解高手(哈哈)
数据加载中...
 
   



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

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