iniciar-programa
define-nueva-instruccion norte como mientras no-orientado-al-norte hacer gira-izquierda;
define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
define-nueva-instruccion oeste como mientras no-orientado-al-oeste hacer gira-izquierda;
define-nueva-instruccion este como mientras no-orientado-al-este hacer gira-izquierda;
define-nueva-instruccion ubica como
    inicio
        sur;
        mientras frente-libre hacer avanza;
        oeste;
        mientras frente-libre hacer avanza;
        este;
    fin;
Define-nueva-instruccion NoviaDondeEstas como
    inicio
       Mientras frente-libre o junto-a-zumbador hacer
           inicio
               Mientras no junto-a-zumbador y frente-libre hacer
                   inicio
                       avanza;
                   fin;
               si junto-a-zumbador entonces
                   inicio
                       coge-zumbador;
                       si junto-a-zumbador entonces
                           inicio
                               coge-zumbador;
                               si junto-a-zumbador entonces
                                   inicio
                                       coge-zumbador;
                                       si no junto-a-zumbador entonces
                                           inicio
                                               repetir 3 veces deja-zumbador;
                                               apagate;
                                           fin sino
                                               inicio
                                                   repetir 3 veces deja-zumbador;
                                                   si frente-libre entonces avanza;
                                               fin;
                                   fin sino
                                       inicio
                                           deja-zumbador;
                                           deja-zumbador;
                                           si frente-libre entonces avanza;
                                       fin;
                           fin sino
                               inicio
                                   deja-zumbador;
                                   si frente-libre entonces avanza;
                               fin;
                   fin;
               si frente-bloqueado entonces
                   inicio
                       si junto-a-zumbador entonces
                           inicio
                               coge-zumbador;
                               si junto-a-zumbador entonces
                                   inicio
                                       coge-zumbador;
                                       si junto-a-zumbador entonces
                                           inicio
                                               repetir 2 veces deja-zumbador;
                                               apagate;
                                           fin sino
                                               inicio
                                                   repetir 2 veces deja-zumbador;
                                               fin;
                                   fin sino
                                       inicio
                                           deja-zumbador;
                                       fin;
                           fin;
                       oeste;
                       mientras frente-libre hacer avanza;
                       norte;
                       si frente-libre entonces avanza;
                       este;
                   fin;
           fin;
    fin;
    inicia-ejecucion
        ubica;
        NoviaDondeEstas;
        apagate;
    termina-ejecucion
finalizar-programa
