java寻路算法_具有指定距离/节点数的寻路算法

我需要一个算法,它会给我一条从起始节点到结束节点的路径,但路径必须有一个确切数量的节点,否则路径查找应该失败 .

为了扩展,我有一个瓷砖网格 . 移动只能是紧邻的上,下,左或右平铺(意思是没有对角线移动) . 瓦片在路径中可以使用和不可以使用的规则有很多,但大多数情况下可以归结为简单的布尔来判断瓦片是否可以使用(这可以在开始算法之前计算出来)但是,给我带来麻烦的是,我有一条路径必须具有的距离,这意味着,从一个瓷砖到相邻瓷砖的每一次移动都是一个距离,整个路径应该有一个指定的距离,不多也不少 . 此外,一旦瓷砖被踩到(但算法开始时所有瓷砖都可用),它不能再次踩到,有点像玩老蛇游戏你我要注意不要吃自己 .

我看过Dijkstra / A *并且我用google搜索算法进行寻路,但据我所知,所有这些算法都集中在最短的路径上,这对我没什么好处 . 只要遵循上述规则,我不关心它是哪条路径 .

我错过了什么,这样的算法和算法是否已经存在,或者是否有一种简单的方法来修改Dijkstra / A *来给出这个结果?由于我不是母语为英语的人,我可能使用了错误的术语,所以我欢迎这种算法的关键字建议 .

这里是我的意思,当我说它必须是和确切的距离,并不能使用相同的瓷砖两次 .

假设距离必须为7.现在让我们用O标记可以在路径中使用的图块,不能使用的图块和X,S的起点和E的目标 .

X X X X X X X

X O O E S O O

X O O O O O O

如果没有距离限制,可以向左走,问题就解决了 . 如果有距离限制,但没有“不能踩到相同的瓷砖”限制,可以下降一次,然后向左,然后向右,然后向左,然后向右,然后向左,然后向上并到达目标 . 由于存在这两种限制,因此需要向右,向下,向左,向左,向上,向右然后才能到达目标 . 但是,如果情况是这样的话,就没有有效的路径 .

X X X X X X X

X O O E S O O

X X O O O X O

如果它是相关的,我正在用C#开发这个棋盘游戏 .

至于最大距离,这是距离所在的范围 . 玩家将掷骰子并获得数字1-6 . 如果玩家获得6,他会再次投掷骰子,如果他再次获得6,则一次又一次直到他没有得到6.距离是结果数加上玩家拾取的物品数量,理论上可以最多8,但通常是0-3,maaaybe 4 .

另一方面,我刚收到新订单,游戏规则改为允许在相同的路径上两次踩到同一个位置,我相信这个过程很简单,但是我会把这个问题保留为我认为它有很好的答案,可以帮助那些情况下的人 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值