【问题标题】:Solving Robozzle puzzle解决 Robozzle 难题
【发布时间】:2023-02-02 01:17:40
【问题描述】:

我在解决 robozzle.com 中的这个难题时遇到了问题。 Dispersion V2

关卡看起来像一个矩形螺旋,机器人的初始位置在左下角。

  • 螺旋的每一边都有4个红色方块;
  • 每条边(转)都是红色方块
  • 螺旋的每一边都比前边短 1 个方块

我需要使用 4 个函数编写算法。(F1、F2、F3、F4) 4 functions with commands

命令:前进,右转/左转,你可以查看当前方块的颜色:红、蓝、绿(这里不需要,我想)。还有函数调用(F1、F2、F3、F4) Commands

我现在拥有的:current algo

我该如何解决这个难题?

【问题讨论】:

  • 这将被关闭,但这是一个很好的问题。在帖子中用理解和回答它所需的所有内容重写它(也可以有链接,但理解问题不应该依赖于它们)。
  • 颜色重要吗?你想做什么?

标签: algorithm


【解决方案1】:

您的尝试没有主循环:它在蓝色单元格上有一个循环,但随后转到 F3 并且 F2 将永远不会再次运行。

您在 F2 中所做的是一个好的开始:只要方块是蓝色就一直移动。但我会在另一个只有 2 个条目的命令中执行此操作。此外,我不会让移动动作成为有条件的;只有它的重复应该以蓝色为条件。这样你也可以在红点时调用它:

F4: ↑ F4(blue)

所以 F4 动作会带你到一个非蓝点,但如果你从一个非蓝点开始,它会带你到下一个一。

我们需要让这种情况发生四次。嗯,4 是 2x2,所以让我们先用命令 F3 重复两次:

F3: F4 F4

...并重复 F3 两次,以便我们移动到第四个非蓝色点。这就是我们需要转弯的地方:

F2: F3 F3 ↰

因此,F2 会将我们带到第四个红点并转弯。这应该无休止地重复:

F1: F2 F1

就是这样!

【讨论】:

    猜你喜欢
    • 2012-05-10
    • 1970-01-01
    • 2020-04-12
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    相关资源
    最近更新 更多