KAREL_Unit8, Lesson5 풀이
다 채우는 것이 목표인 줄 알았는데 아니었다.
Karel이 마지막에 서있는 모습까지 똑같아야 통과가 되는 것 같았다.
처음 해본 코드는 아래에 작성하였다.
function main(){
while(frontIsClear()){
putBeeperLine();
position();
}
}
function position(){
turnLeft();
move();
turnLeft();
while(frontIsClear()){
move();
}
turnLeft();
turnLeft();
}
function putBeeperLine(){
putBeeper();
while(frontIsClear()){
move();
putBeeper();
}
}
하지만 이는 자꾸만 'Front is Blocked()!'라는 오류와 함께 karel의 방향이 위를 향하고 있었다.
계속해서 수정을 시도하던 중 갑자기 하나의 방법이 떠올라 시도해 봤더니 성공하였다.
정확한 원리는 아직 잘 모르겠다.
성공한 코드는 다음과 같다.
function main(){
while(!rightIsClear() || leftIsClear()){
putBeeperLine();
position();
}
putBeeperLine();
}
function position(){
turnLeft();
move();
turnLeft();
while(frontIsClear()){
move();
}
turnLeft();
turnLeft();
}
function putBeeperLine(){
putBeeper();
while(frontIsClear()){
move();
putBeeper();
}
}
하나의 차이라면 while문에서의 조건을 바꾸고,
while문이 종료된 이후에 putBeeperLine();을 추가한 것이다.
Author And Source
이 문제에 관하여(KAREL_Unit8, Lesson5 풀이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@2020108249/KARELUnit8-Lesson5-풀이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)