iniciar-programa
    define-nueva-instruccion gira(n) como inicio
       repetir n veces
          gira-izquierda;
    fin;
    define-nueva-instruccion norte como inicio
       mientras no-orientado-al-norte hacer
          gira(1);
    fin;
    define-nueva-instruccion sur como inicio
       mientras no-orientado-al-sur hacer
          gira(1);
    fin;
    define-nueva-instruccion este como inicio
       mientras no-orientado-al-este hacer
          gira(1);
    fin;
    define-nueva-instruccion oeste como inicio
       mientras no-orientado-al-oeste hacer
          gira(1);
    fin;
    define-nueva-instruccion veporuno(n) como inicio
       si no-orientado-al-oeste y si-es-cero(n) entonces inicio
          gira(1);
          veporuno(0);
          gira(3);
       fin
       sino inicio
          si si-es-cero(n) entonces inicio
             veporuno(1);
             oeste;
             sal-de-instruccion;
          fin
          sino inicio
             si frente-libre entonces inicio
                avanza;
                veporuno(1);
                avanza;
             fin
             sino inicio
                si orientado-al-oeste entonces inicio
                   sur;
                   veporuno(1);
                   este;
                fin
                sino inicio
                   norte;
                   coge-zumbador;
                fin;
             fin;
          fin;
       fin;
    fin;
    define-nueva-instruccion busca como inicio
       si junto-a-zumbador entonces inicio
          coge-zumbador;
          si junto-a-zumbador entonces inicio
             coge-zumbador;
             si junto-a-zumbador entonces inicio
                deja-zumbador;
                deja-zumbador;
                sal-de-instruccion;
             fin
             sino inicio
                deja-zumbador;
                deja-zumbador;
                veporuno(0);
                deja-zumbador;
             fin;
          fin;
          repetir 4 veces inicio
             si frente-libre entonces inicio
                avanza;
                si junto-a-zumbador entonces
                   busca;
                gira(2);
                avanza;
                gira(2);
             fin;
             gira(1);
          fin;
       fin;
    fin;
    define-nueva-instruccion volviendo como inicio
       si frente-libre entonces inicio
          avanza;
          volviendo;
          avanza;
       fin
       sino inicio
          si orientado-al-oeste entonces inicio
             sur;
             volviendo;
             este;
          fin
          sino inicio
             norte;
             mientras algun-zumbador-en-la-mochila hacer
                deja-zumbador;
          fin;
       fin;
    fin;
    define-nueva-instruccion dejando como inicio
       si junto-a-zumbador entonces inicio
          coge-zumbador;
          dejando;
          coge-zumbador;
       fin
       sino inicio
          mientras algun-zumbador-en-la-mochila hacer
             deja-zumbador;
       fin;
    fin;
    define-nueva-instruccion termina como inicio
       oeste;
       mientras frente-libre hacer
          avanza;
       sur;
       mientras frente-libre hacer
          avanza;
       dejando;
    fin;
    inicia-ejecucion
        oeste;
        volviendo;
        busca;
        termina;
        apagate;
    termina-ejecucion
finalizar-programa
