beginning_of_program define_new_instruction turnright as iterate 3 times turnleft; define_new_instruction checar as { if left_is_blocked then { turnleft; buscarpared; } if right_is_blocked then { turnlight; buscarpared; } if front_is_blocked then { buscarpared; } } define_new_instruction baila as { checar; turnright; move; checar; iterate 3 times turnleft; move; turnright; { if front_is_clear then move; else buscarpuerta; } } define_new_instruction buscarpuerta as { turnleft; { while right_is_clear do move; } { while right_is_blocked do buscarpuerta; } salir; } define_new_instruction salir as { turnright; move; turnoff; } beginning_of_execution bailar; end_of_execution end_of_program