if (knitr:::is_latex_output()) {
knitr::asis_output('\\url{....}')
} else {
knitr::include_graphics("fig/Hurdle_01.gif")
}
move(), turn_left()jump() 함수를 작성해서 프로그램 코드를 단순화시킬 수 있다.if (knitr:::is_latex_output()) {
knitr::asis_output('\\url{....}')
} else {
knitr::include_graphics("fig/Hurdle_01.gif")
}
def turn_right():
turn_left()
turn_left()
turn_left()
def jump_over_hurdle():
move()
turn_left()
move()
turn_right()
move()
turn_right()
move()
turn_left()
# jump_over_hurdle()
repeat 6:
jump_over_hurdle()move(), turn_left()at_goal() 혹은 부정(negation)while()if (knitr:::is_latex_output()) {
knitr::asis_output('\\url{....}')
} else {
knitr::include_graphics("fig/Hurdle_02.gif")
}
def turn_right():
turn_left()
turn_left()
turn_left()
def jump_over_hurdle():
move()
turn_left()
move()
turn_right()
move()
turn_right()
move()
turn_left()
# jump_over_hurdle()
while not at_goal():
jump_over_hurdle()move(), turn_left()at_goal(), front_is_clear(), wall_in_front(), 혹은 부정(negation)while() 루프와 if 문if (knitr:::is_latex_output()) {
knitr::asis_output('\\url{....}')
} else {
knitr::include_graphics("fig/Hurdle_03.gif")
}
def turn_right():
turn_left()
turn_left()
turn_left()
def jump_over_hurdle():
# move() <-- 일반화를 위해 제거
turn_left()
move()
turn_right()
move()
turn_right()
move()
turn_left()
# jump_over_hurdle()
while not at_goal():
if front_is_clear():
move()
elif wall_in_front():
jump_over_hurdle()move(), turn_left()at_goal(), front_is_clear(), wall_in_front(), 혹은 부정(negation)while() 루프와 if 문if (knitr:::is_latex_output()) {
knitr::asis_output('\\url{....}')
} else {
knitr::include_graphics("fig/Hurdle_04.gif")
}
def turn_right():
turn_left()
turn_left()
turn_left()
def jump_over_hurdles():
# 장애물 위쪽 올라가기
if wall_in_front():
turn_left()
while not right_is_clear():
move()
# 장애물 위를 넘어가기
turn_right()
move()
turn_right()
# 장애물 내려오기
while front_is_clear():
move()
# 다시 경주자세로 자세 갖추기
turn_left()
while not at_goal():
if front_is_clear():
move()
elif wall_in_front():
jump_over_hurdles()