10  폭풍 후에 …

10.1 낙엽 청소 1

  • 문제 바로가기
  • 선행 지식
    • 기본 함수 : move(), turn_left(), take(), toss()
    • 테스트 조건: object_here(), carries_object(), front_is_clear(), wall_in_front()
    • 반복 while문과 제어 조건 if 문을 사용
  • 난이도: 4

10.1.1 실행결과

if (knitr:::is_latex_output()) {
  knitr::asis_output('\\url{....}')
} else {
  knitr::include_graphics("fig/Storm_01.gif")
}

10.1.2 코드

def turn_right():
    turn_left()
    turn_left()
    turn_left()

def turn_around():
    turn_left()
    turn_left()
    
while front_is_clear():
    move()
    while object_here():
        take()

turn_around()
repeat 5:
    move()

turn_right()    
    
while carries_object():
    toss() 

10.2 낙엽 청소 2

  • 문제 바로가기
  • 선행 지식
    • 기본 함수 : move(), turn_left(), take(), toss()
    • 테스트 조건: object_here(), carries_object(), front_is_clear(), wall_in_front()
    • 반복 while문과 제어 조건 if 문을 사용
  • 난이도: 4

10.2.1 실행결과

if (knitr:::is_latex_output()) {
  knitr::asis_output('\\url{....}')
} else {
  knitr::include_graphics("fig/Storm_02.gif")
}

10.2.2 코드

def turn_around():
    turn_left()
    turn_left()

def turn_right():
    turn_left()
    turn_left()
    turn_left()

def collect_leaves():
    while front_is_clear():
        while object_here():
            take()
        move()
        
def first_collect_leaves():
    while front_is_clear():
        while object_here():
            take()
        move()            
    turn_around()
    repeat 4:
        move()
    turn_right()
    move()
    turn_right()
    collect_leaves()
    turn_left()
    move()
    turn_left()
            
def go_to_beginning():
    while object_here():
        take()    
    turn_around()
    while not wall_in_front():
        move()
    turn_left()
    move()
    turn_left()    

def go_to_home():
    while not wall_in_front():
        move()
        while object_here():
            take()
    turn_left()
    while not at_goal():
        if front_is_clear():
            move()
        elif right_is_clear():
            turn_right()
        elif wall_in_front():
           turn_left()
    turn_right()
    while carries_object():
        toss()
        
move()    
first_collect_leaves()
repeat 3:
    collect_leaves()
    go_to_beginning()


go_to_home()