我正在尝试构建算法,以阻止"阻塞路径"。我绘制随机迭代并在地图上打印: [...]
" x"是球员。它可以在这张地图上移动,但不能留在这个地图上#34;#"领域。绘制后路径被阻止(" x"无法移动到,例如",(3,2):
有人有想法,概念或材料如何编写防止绘制的算法"#"当它阻挡路径?
这是我的代码:
void build_dungeon(MAP_GRID& map, int chance, string object)
{
int i, j;
for (i = 0; i < g_map_size; i++){
for (j = 0; j < g_map_size; j++){
if (rand() % 100 >= (100 - chance) && map[i][j] == "[ ]" && anti_stuck(map, i, j)){
map[i][j] = object;
print_map(map);
}
}
}
}
我正在尝试编写anti_stuck函数。
答案 0 :(得分:4)
您可以执行flood fill以确定哪个方格可以从给定的起始位置到达。从the Wikipedia article:
中查看此动画
或者,如果您想确定是否可以从另一个方格到达一个方格,请使用pathfinding算法,例如A*。同样,来自Wikipedia的动画: