0

我正在尝试解决问题(2.4.1,SolveTheMaze),但由于某种原因,机器人在使用蜂鸣器时并没有停止 - 他只是继续前进。好像我已经创建了一个无限循环。这是问题的图片:

卡雷尔:解决迷宫

这是代码:

void solveTheMaze()
{
  while (!onBeeper())
  {
     CrossABarrier();   
  }  
}

void CrossABarrier()
{
   while (frontIsClear())
   {
       moveForward();
       if (frontIsClear() && leftIsClear())
       {
           turnLeft();
       }
       rightOrleftNotClear();
       while (!frontIsClear())
       {
           turnLeft();
       }       
   }  
}


 void rightOrleftNotClear()
{
   if (!frontIsClear() && !leftIsClear())
   {
      turnRight();
   }
   else if (!frontIsClear() && !rightIsClear())
   {
      turnLeft();
   } 
}
4

1 回答 1

1

这是我的解决方案。不是很聪明,但它有效:)

void mazeFind()
{
    while (!onBeeper())
    {
        if (leftIsClear())
        {
            turnLeft();
            moveForward();
        }
        else if (frontIsClear())
        {
            moveForward();
        }
        else if (rightIsClear())
        {
            turnRight();
            moveForward();
        }
        else
        {
            turnAround();
            moveForward();
        }
    }
}
于 2020-12-26T19:45:27.743 回答