iniciar-programa
    define-nueva-instruccion serie como inicio
        mientras frente-libre hacer inicio
           avanza;
           si algun-zumbador-en-la-mochila entonces inicio
              deja-zumbador;
           fin;
        fin;
        repetir 2 veces inicio
           gira-izquierda;
        fin;
        mientras frente-libre hacer inicio
           avanza;
        fin;
    fin;
    define-nueva-instruccion gira como inicio
       gira-izquierda;
       si algun-zumbador-en-la-mochila entonces inicio
          deja-zumbador;
       fin;
       avanza;
       gira-izquierda;
    fin;
    define-nueva-instruccion caro como inicio
       si izquierda-bloqueada entonces inicio
          serie;
          gira-izquierda;
          deja-zumbador;
          gira-izquierda;
          mientras derecha-bloqueada hacer inicio
             avanza;
          fin;
          si derecha-libre entonces inicio
             repetir 3 veces inicio
                gira-izquierda;
             fin;
             avanza;
          fin;
       fin;
       si orientado-al-este entonces inicio
           si ningun-zumbador-en-la-mochila entonces inicio
              apagate;
           fin;
       fin;
    fin;
    inicia-ejecucion
        si orientado-al-norte entonces inicio
           repetir 3 veces inicio
              gira-izquierda;
           fin;
        fin;
        si orientado-al-oeste entonces inicio
           repetir 2 veces inicio
              gira-izquierda;
           fin;
        fin;
        avanza;
        mientras junto-a-zumbador hacer inicio
           coge-zumbador;
        fin;
        si no-junto-a-zumbador entonces inicio
           gira-izquierda;
           gira-izquierda;
        fin;
        avanza;
        repetir 3 veces inicio
           gira-izquierda;
        fin;
        si frente-libre entonces inicio
           avanza;
           mientras derecha-bloqueada hacer inicio
              avanza;
           fin;
           si derecha-libre entonces inicio
              repetir 3 veces inicio
                 gira-izquierda;
              fin;
           fin;
           avanza;
        fin;
        repetir 3 veces inicio
           gira-izquierda;
        fin;
        mientras frente-libre hacer inicio
           avanza;
        fin;
        si frente-bloqueado entonces inicio
           repetir 2 veces inicio
              gira-izquierda;
           fin;
        fin;
        mientras derecha-libre hacer inicio
        mientras frente-libre hacer inicio
           serie;
           gira;
           si derecha-bloqueada entonces inicio
           serie;
           fin;
        fin;
        si frente-bloqueado entonces inicio
              si ningun-zumbador-en-la-mochila entonces inicio
                 apagate;
              fin;
           deja-zumbador;
           repetir 2 veces inicio
              gira-izquierda;
           fin;
           si frente-libre entonces inicio
              avanza;
              mientras derecha-bloqueada hacer inicio
                 avanza;
              fin;
              si derecha-libre entonces inicio
                 repetir 3 veces inicio
                    gira-izquierda;
                 fin;
              fin;
              avanza;
           fin;
        fin;
        fin;
        si derecha-bloqueada entonces inicio
           caro;
        fin;
          apagate;
    termina-ejecucion
finalizar-programa