为什么这段代码是错误的?我的代码结果与目标图像相同,但以“前被阻止”错误结束。
//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)”必须结束,但有些事情是错误的。如果和当崩溃时可能是内部的,或者不同大小的盒子的结果是错误的。
如果有人知道更好的答案,请分享我。