【问题标题】:how to move in a matrix to reach a goal using the least number of moves如何在矩阵中移动以使用最少的移动次数达到目标
【发布时间】:2020-04-17 13:15:41
【问题描述】:

我最近开始用 c 编程,我有一个问题要解决,实际上我正在开发一个小游戏,在第一阶段,我在矩阵上随机放置一些棋子,第二次我放置旗帜以征服 每个棋子都有一个目标索引,它对应于一个放置的旗帜,并且有许多移动来到达它 我怎样才能找到一条最佳路径,从起始索引引导我到达目标的移动次数

【问题讨论】:

  • 建议:做一个graph
  • 两个棋子可以同时占据一个位置吗?
  • @SimonCrane 没有两个棋子可以占据不同的方格

标签: c concurrency path minimum


【解决方案1】:

当涉及到一个矩阵时,您通常可以使用嵌套的 for 循环来遍历矩阵的所有点。由于每个 pawn 都有自己的目标标志,因此您应该在矩阵中为每个 pawn 和标志提供位置。例如,如果它是一个 6 x 6 矩阵,您的 pawn 位于 5,0 位置,而目标标志位于 0,0 位置,则您必须减少 pawn 的 y。但是,如果这个棋子的移动次数是 3,它就不可能到达旗帜。我想这是一个开始,然后你从那里开始?

【讨论】:

    【解决方案2】:

    我怎样才能找到一条从起始索引引导我到达目标的最佳路径,其中包含许多移动

    如果我理解正确,您正在寻找寻路算法来确定最佳路径。

    您可以使用 BFS(广度优先搜索)DFS(深度优先搜索),但还有更多算法,请查找信息 here,如果需要在你的浏览器中测试我推荐你这个github page

    在代码方面,您可以在互联网上找到这些算法的实现,并直接在 stackoverflow 上找到大量信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 2016-02-16
      相关资源
      最近更新 更多