8  중심 (center)

8.1 중심 찾기 1

  • 문제 바로가기
  • 선행 지식
    • 기본 함수 : move(), turn_left(), put()
    • 테스트 조건: front_is_clear(), wall_in_front(), object_here()
    • 반복 및 제어: while 루프, if
    • 난이도: 5

8.1.1 실행결과

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

8.1.2 코드

def turn_around():
    turn_left()
    turn_left()
    
# 환경설정 ------------------    
def put_tokens():
    ## 토큰 양 끝에 두기 ----
    put()
    while front_is_clear():
        move()
    put()
    ## 제자리 돌아오기 -----
    turn_around()
    while front_is_clear():
        move()
    turn_around()
    
put_tokens()    

# 토큰 이동 ------------------    

def pick_and_put():    
    take()
    move()
    put()
    move()

def move_left_to_right():
    if object_here():
        pick_and_put()
        while not object_here():
            move()

def move_right_to_left():
    turn_around()
    if object_here():
        pick_and_put()
        while not object_here():
            move()

def move_left_right_tokens() :
    move_left_to_right()
    move_right_to_left()           
    turn_around()

  
move_left_right_tokens()
move_left_right_tokens()
move_left_right_tokens()
move_left_right_tokens()