邮车的路线

我们应该能够比随机机器人做得更好。 一个简单的改进就是从现实世界的邮件传递方式中获得提示。 如果我们发现一条经过村庄所有地点的路线,机器人可以通行该路线两次,此时它保证能够完成。 这是一条这样的路线(从邮局开始)。

  1. const mailRoute = [
  2. "Alice's House", "Cabin", "Alice's House", "Bob's House",
  3. "Town Hall", "Daria's House", "Ernie's House",
  4. "Grete's House", "Shop", "Grete's House", "Farm",
  5. "Marketplace", "Post Office"
  6. ];

为了实现路线跟踪机器人,我们需要利用机器人的记忆。 机器人将其路线的其余部分保存在其记忆中,并且每回合丢弃第一个元素。

  1. function routeRobot(state, memory) {
  2. if (memory.length == 0) {
  3. memory = mailRoute;
  4. }
  5. return {direction: memory[0], memory: memory.slice(1)};
  6. }

这个机器人已经快了很多。 它最多需要 26 个回合(13 步的路线的两倍),但通常要少一些。

  1. runRobotAnimation(VillageState.random(), routeRobot, []);