0

为什么这段代码是错误的?我的代码结果与目标图像相同,但以“前被阻止”错误结束。

//Make Karel fill the world
//with beepers
function main() {
   while(frontIsClear()){
      putBeeperLine();
      turnLeft();
      move();
      if (beepersPresent()){
         turnAround();
         move();
         onlyOneB();
         turnAround();
         move();
         turnLeft();
         while(beepersPresent()){
            move();
            if(frontIsBlocked()){
               turnLeft();
               while(frontIsClear()){
                  move();
               }
               turnRight();
            }
         }
         turnRight();
      } 
   }
   
}
   
function onlyOneB(){
   while(beepersPresent()){
      pickBeeper();
   }
   putBeeper();
}

function putBeeperLine(){
   putBeeper();
   while(frontIsClear()) {
      move();
      onlyOneB();
   }
}

我想我不知道 while 函数是如何工作的。我知道如果前面被阻塞,最大的“while(frontIsClear)”必须结束,但有些事情是错误的。如果和当崩溃时可能是内部的,或者不同大小的盒子的结果是错误的。

如果有人知道更好的答案,请分享我。

4

0 回答 0