iniciar-programa
      define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
      define-nueva-instruccion norte como mientras no-orientado-al-norte hacer gira-izquierda;
      define-nueva-instruccion este como mientras no-orientado-al-este hacer gira-izquierda;
      define-nueva-instruccion oeste como mientras no-orientado-al-oeste hacer gira-izquierda;
      define-nueva-instruccion derecha como repetir 3 veces gira-izquierda;

       define-nueva-instruccion orientar como
           inicio
               oeste;
               mientras frente-libre hacer avanza;
               este;
           fin;

       define-nueva-instruccion mitad como
            inicio
                si frente-libre entonces
                    inicio
                        repetir 2 veces avanza;
                        mitad;
                        avanza;
                    fin sino
                        inicio
                            repetir 2 veces gira-izquierda;
                        fin;
              fin;

        define-nueva-instruccion abajo como
            inicio
                mientras derecha-bloqueada y frente-libre hacer avanza;
                si derecha-bloqueada entonces gira-izquierda;
                si derecha-libre entonces
                    inicio
                        sur;
                        avanza;
                    fin;
            fin;

    inicia-ejecucion
        mientras no-orientado-al-norte hacer
            inicio
                orientar;
                mitad;
                deja-zumbador;
                mientras frente-libre hacer avanza;
               repetir 2 veces gira-izquierda;
                abajo;
            fin;
     apagate;
    termina-ejecucion
finalizar-programa

