gpt4 book ai didi

c - 找出迷宫中某个案例的 x 和 y(在 C 中)

转载 作者:行者123 更新时间:2023-11-30 21:37:45 26 4
gpt4 key购买 nike

我想使用A*算法找到case(n)和case(m)之间的距离,其中n!=m。如何使用迷宫中的案例编号、高度和宽度找到 x0、x1、y0 和 y1?有公式吗?

float distance(Maze* maze, int start, int end)
{
float x0 = ..??..

float x1 = ..??..

float y0 = ..??..

float y1 = ..??..

float dx = x0 - x1;
float dy = y0 - y1;

return sqrtf(dx*dx+dy*dy);
}

迷宫示例:

<----------- width ------------->  

case0 | case1 | case2 | case3 |

case4 | case5 | case6 | case7 | height

case8 | case9 | case10 | case11 |

最佳答案

首先计算索引:

int x0 = m % width; // % = modulo operation
int y0 = m / width;

int x1 = n % width;
int y1 = n / width;

int dx = x1 - x0;
int dy = y1 - y0;

return sqrtf(dx*dx + dy*dy);

确保使用 int 执行索引计算。 int 除法会截断小数。模运算返回除法的余数。 x % width 产生 0 .. width-1 范围内的值。

关于c - 找出迷宫中某个案例的 x 和 y(在 C 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com