我需要帮助。
我会尝试尽可能完美地解释。
假设我有一个2d网格,这是我的“世界”。
网格看起来像这样:
灰色方块是草。 绿色方块是道路。 橙色方块是沙漠。
中间的蓝色方块是我的车。我的车的射程限制为5格。我想找到并突出显示我可以达到的最大范围或更小的所有方格。
驾驶灰色广场需要1个范围。没有什么花哨。然而, 穿过绿色广场可以获得+0,5的射程。这意味着,如果您通过的前2个方格是绿色,则您的最大范围突然为6。 在橙色广场上行驶会给你一个-0,5的范围惩罚。这意味着如果您通过的前2个方格是橙色,则最大范围为4。
所以基本上,驾驶到一个正方形,花费你1个范围,但根据正方形,它可以给你额外的范围或更小的范围。
考虑奖金,探索所有路径。会使我的汽车最外部的范围看起来像这样:
所以是的,我想要找到所有标有黑色边框的方块,以及其中的所有方块。这样我的最大范围内的所有方格都会突出显示。
很长的问题,但我如何实现这一目标?
我首先考虑了广度和深度,但是因为我可以在同一个广场上走几条路线,所以我不能在第一次将它标记为“已访问”,然后再回到它上面了吗?
对此的帮助会非常有用。
感谢您一直在这里阅读。
/ E
答案 0 :(得分:9)
您可以更轻松地代表您的模型,无论是成本还是奖金。
现在,您有一个简单的图表,您可以找到距离不超过5天的所有位置with Dijkstra's algorithm。