미로찾기 알고리즘
삐삐가 있는곳이 출구로 가정된다.
단 삐삐는 미로의 출구(즉 미로의 외곽벽과 인접한 위치)에 있어야만 한다.
삐삐가 있는곳이 출구로 가정된다.
단 삐삐는 미로의 출구(즉 미로의 외곽벽과 인접한 위치)에 있어야만 한다.
def such():
저번 소트 알고리즘을 한층 강화한 고속 소트알고리즘이다.
여러가지 환경에서 테스트를 수행하였으며, 문제가 있을경우 조현태페이지에 올려놓으면 빠른시일내에 해결하도록 노력하겠습니다.
파일을 copy/paste하는 과정에서 중간중간에 빈 줄이 생겼는데, 일부 삭제하였으나 남은 것이 있을 경우 지우고 사용해야 합니다.(단 함수와 함수사이는 아닙니다.)
소트 함수명은 sort()입니다.
리펙토링이 덜된 이유는 리펙토링을 하면 할수록 느려지는듯한 문제가(인터프리터방식으로 인한듯)있는듯 하기때문 입니다.
while not next_to_a_beeper():
소트 알고리즘if right_is_clear():
turn_right()
move()
else:move()
if front_is_clear():
move()
else:turn_left()
저번 소트 알고리즘을 한층 강화한 고속 소트알고리즘이다.
여러가지 환경에서 테스트를 수행하였으며, 문제가 있을경우 조현태페이지에 올려놓으면 빠른시일내에 해결하도록 노력하겠습니다.
파일을 copy/paste하는 과정에서 중간중간에 빈 줄이 생겼는데, 일부 삭제하였으나 남은 것이 있을 경우 지우고 사용해야 합니다.(단 함수와 함수사이는 아닙니다.)
소트 함수명은 sort()입니다.
리펙토링이 덜된 이유는 리펙토링을 하면 할수록 느려지는듯한 문제가(인터프리터방식으로 인한듯)있는듯 하기때문 입니다.
def sort_sub():
move()
if next_to_a_beeper():
def sort_sub_sub():if next_to_a_beeper():
pick_beeper()
turn_left()
turn_left()
while not next_to_a_beeper():
turn_left()
move()
put_beeper()
turn_left()
turn_left()
while not next_to_a_beeper():
move()
turn_left()turn_left()
move()
put_beeper()
while front_is_clear():
def gaedan():move()
if next_to_a_beeper():
if next_to_a_beeper():
pick_beeper()
turn_left()
move()
turn_left()
while not next_to_a_beeper():
move()
if right_is_clear():
break
turn_left()
move()
turn_left()
while not next_to_a_beeper():
move()
while next_to_a_beeper():if front_is_clear():
turn_left()move()
else:break
move()
if right_is_clear():
turn_left()
move()
else:move()
turn_left()
put_beeper()break
while next_to_a_beeper():
turn_left()
while not next_to_a_beeper():
if front_is_clear():
def move_endof_sub():if front_is_clear():
while front_is_clear():move()
else:break
sort_sub()
turn_left()turn_left()
while not next_to_a_beeper():
if front_is_clear():
while next_to_a_beeper():move()
else:turn_off()
if front_is_clear():
turn_left()move()
else:break
if front_is_clear():
move()
else:turn_off()
if right_is_clear():turn_left()
move()
else:move()
turn_left()
if not next_to_a_beeper():sort_sub_sub()
move_wall()
turn_right()
move()
turn_right()
while not next_to_a_beeper():
move()
turn_left()
def move_endof():turn_right()
move()
turn_right()
while not next_to_a_beeper():
move()
turn_right()move()
turn_left()
move_wall()
turn_left()
turn_left()
while not next_to_a_beeper():
def sort():turn_left()
turn_left()
while not next_to_a_beeper():
move()
while not next_to_a_beeper():
if right_is_clear():
while 1:
def turn_right(): move()
while next_to_a_beeper():if front_is_clear():
turn_left()move()
else:break
if right_is_clear():
turn_left()
move()
else:move()
turn_left()
move()while 1:
gaedan()
repeat(turn_left,3)
sort()