여러분 대부분 알아내셨듯이, 비퍼를 내려 놓은 후에 너무나도 서둘러서 리보그에게 앞으로 전진하게 명령을 한 것입니다. 앞으로 움직이기 전에 벽이 있는지를 확인하는 단계가 필요합니다. 여기 해답이 있습니다.
def turn_right(): repeat(turn_left, 3) put_beeper() # begin changes if not front_is_clear(): turn_left() # end changes move() while not on_beeper(): if right_is_clear(): turn_right() move() elif front_is_clear(): move() else: turn_left() turn_off()
지금 당장 테스트해보고 정상적으로 작동하는지 확인하세요. 이 프로그램이 동작할 것 같지 않는 상황을 상상할 수 있나요?