c - 构建一个读取数组的c程序

标签 c algorithm

我有这个“测试”让我们说..我需要解决这个问题,这不是家庭作业,但我需要它才能通过测试。

我可能需要一点帮助,因为我不明白我需要做什么。 我需要这里的算法! 事情是这样的: 下表代表了一个迷宫。 “1”表示不能通过该值,“0”表示可以通过该值。 “T”是获得的宝物,“H”是入口。 坐标是:H(3.1),T(2.8)。

-我需要一个程序来读取矩阵 A[1..M,1..N],它本身代表一个包含元素 [0,1] 的迷宫,并且还读取 H、T 值。

它应该打印一条通往宝藏的路,如果有的话,它应该说“No way to the treasure”他的矩阵是:

    1 1 1 1 1 1 1 1 1 1
    1 1 0 0 0 1 0 T 0 1
    H 0 0 1 1 1 0 1 1 1
    1 1 0 0 0 0 0 0 0 1
    1 1 1 1 1 1 1 1 1 1

最佳答案

使用 Wall Follower方法。您需要有一个变量来存储您正在查看的方向(左、右、上、下)。然后你继续朝那个方向前进,直到你撞到墙上。当你在墙上时,你一直向左转,直到你可以继续走。这样做直到达到目标。

或者伪代码:

var walkingDirection = up;
while (not at target)
    if (next field in walkingDirection is not a wall)
        go to next field in walkingDirection
    else
        turn right
    end if
end while

然而,这在不是简单连接的迷宫中会失败(阅读该链接)。

另一种稍微困难的方法可能是 A* algorithm .

关于c - 构建一个读取数组的c程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15644009/

相关文章:

c - 使用 fread 更改结构值 C 时出现问题

C - 创建结构的动态数组,结构成员打印错误的值?

c++ - 苹果系统。如何从 PNG 数据创建图像?

c - 为什么我会通过这种无条件跳转获得 SIGSEGV?

python - 在循环迭代中另外比较两个数字

C++ 字符串差异(一种 Python 的差异库)

c - 如何在c中打印指针?

java - 错误 : the method sort (Comparable []) in the type Selection is not applicable for the arguments (int[])

algorithm - 多项式的二进制 XGCD

javascript - 我最大的质数查找函数有什么问题?