我正在进行蛇形游戏,其中蛇穿过2D int数组作为其地形 . 存储在2D数组中的值表示跨越所需的时间(以秒为单位) .
例如,
int[][] MAP = {
{ 1, 1, 1, 2, 2 },
{ 1, 2, 2, 2, 2 },
{ 3, 2, 2, 3, 1 },
{ 1, 1, 3, 2, 1 },
{ 1, 1, 3, 2, 1 }
};
所以从 map[0][0]
到 map[0][4]
需要 1 + 1 + 2 + 2
秒 . 我如何制作一个算法,找到蛇从位置 map[startX][startY]
到 map[endX][endY]
的最短路径?
这不是一个家庭作业,我只是为了好玩而制作游戏,并想学习如何做到这一点 .
1 回答
在讨论"dynamic programming"时,这是一个有点已知的问题,甚至类似于old post .
尽管如此,我没有找到也打印出最短路径的解决方案,因此:
这里,布尔数组表示从(0,0)到(4,4)的步骤 . 值为TRUE表示步骤向右,FALSE表示向下 . 在此示例中,阵列有8个单元格 .