BEGINNING_OF_PROGRAM DEFINE_NEW_INSTRUCTION paso_a_la_derecha AS {turnright; move; turnleft;} DEFINE_NEW_INSTRUCTION paso_a_la_izquierda AS {turnleft; move; turnright;} DEFINE_NEW_INSTRUCTION baila AS { {IF front_is_blocked THEN paso_a_la_izquierda; IF front_is_clear THEN { paso_a_la_izquierda; move; } } DEFINE_NEW_INSTRUCTION TURNRIGHT AS {ITERATE 3 TIMES turnleft ;} DEFINE_NEW_INSTRUCTION busca_pared AS {WHILE front_is_clear DO baila; turnleft;} DEFINE_NEW_INSTRUCTION busca_puerta AS WHILE right_is_blocked DO {IF front_is_clear THEN move; ELSE turnleft;} DEFINE_NEW_INSTRUCTION salte AS { turnright; move; } BEGINNING_OF_EXECUTION BUSCA_PARED; BUSCA_PUERTA; SALTE; TURNOFF; END_OF_EXECUTION END_OF_PROGRAM