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