iniciar-programa
    define-nueva-instruccion derecha como inicio
      gira-izquierda;
      gira-izquierda;
      gira-izquierda;
    fin;
    define-nueva-instruccion vigas como inicio
      si izquierda-bloqueada entonces inicio
        sal-de-instruccion;
      fin;
      si junto-a-zumbador entonces inicio
        gira-izquierda;
        coge-zumbador;
        si frente-libre entonces inicio
          avanza;
        fin;
        mientras junto-a-zumbador hacer inicio
          coge-zumbador;
          si frente-bloqueado entonces inicio
            deja-zumbador;
            gira-izquierda;
            gira-izquierda;
            mientras frente-libre hacer inicio
              avanza;
            fin;
            gira-izquierda;
            sal-de-instruccion;
          fin;
          si frente-libre entonces inicio
            avanza;
          fin;
        fin;
        si no-junto-a-zumbador entonces inicio
          gira-izquierda;
          gira-izquierda;
          avanza;
          deja-zumbador;
          mientras frente-libre hacer inicio
            avanza;
          fin;
          gira-izquierda;
          sal-de-instruccion;
        fin;
      fin;
    fin;

    define-nueva-instruccion medidas como inicio
      gira-izquierda;
      si frente-bloqueado entonces inicio
        gira-izquierda;
      mientras frente-libre hacer inicio
        si junto-a-zumbador entonces inicio
          coge-zumbador;
          mientras frente-libre hacer inicio
            si junto-a-zumbador entonces inicio
              coge-zumbador;
            fin;
            avanza;
          fin;
          deja-zumbador;
          sal-de-instruccion;
        fin;
        avanza;
      fin;
      sal-de-instruccion;
    fin;
    si frente-libre entonces inicio
        avanza;
    fin;
      mientras no-orientado-al-oeste hacer inicio
        gira-izquierda;
      fin;
      mientras frente-libre hacer inicio
        avanza;
      fin;
      gira-izquierda;
      avanza;
      gira-izquierda;
       mientras frente-libre hacer inicio

        si junto-a-zumbador entonces inicio
          coge-zumbador;
          mientras frente-libre hacer inicio
            si junto-a-zumbador entonces inicio
              coge-zumbador;
            fin;
            avanza;
            si junto-a-zumbador entonces inicio
              coge-zumbador;
            fin;
          fin;
          mientras no-orientado-al-sur hacer inicio
            gira-izquierda;
          fin;
          mientras frente-libre hacer inicio
            avanza;
          fin;
          derecha;
           mientras frente-libre hacer inicio
            avanza;
          fin;
          deja-zumbador;
          gira-izquierda;
          gira-izquierda;
          avanza;
        fin;
        avanza;
        si junto-a-zumbador entonces inicio
          coge-zumbador;
          mientras frente-libre hacer inicio
            si junto-a-zumbador entonces inicio
              coge-zumbador;
            fin;
            avanza;
            si junto-a-zumbador entonces inicio
              coge-zumbador;
            fin;
          fin;
          mientras no-orientado-al-sur hacer inicio
            gira-izquierda;
          fin;
          mientras frente-libre hacer inicio
            avanza;
          fin;
          derecha;
           mientras frente-libre hacer inicio
            avanza;
          fin;
          deja-zumbador;
          gira-izquierda;
          gira-izquierda;
          avanza;
        fin;
         si frente-bloqueado entonces inicio

          gira-izquierda;
          si frente-bloqueado entonces inicio
            sal-de-instruccion;
          fin;
          si frente-libre entonces inicio
            avanza;
          fin;

           gira-izquierda;
           mientras frente-libre hacer inicio
             avanza;
           fin;
           gira-izquierda;
           gira-izquierda;

        fin;

      fin;
      si frente-bloqueado entonces inicio

          gira-izquierda;
          si frente-bloqueado entonces inicio
            sal-de-instruccion;
          fin;
          mientras frente-libre hacer inicio
            avanza;
            si junto-a-zumbador entonces inicio
              coge-zumbador;
              gira-izquierda;
              gira-izquierda;
              mientras frente-libre hacer inicio
                avanza;
              fin;
              derecha;
              avanza;
              deja-zumbador;
              sal-de-instruccion;
             fin;
          fin;

           gira-izquierda;
           mientras frente-libre hacer inicio
             avanza;
           fin;
           gira-izquierda;
           gira-izquierda;

        fin;
    fin;
    inicia-ejecucion

        mientras frente-libre hacer inicio
          avanza;
          vigas;
        fin;
        medidas;
        apagate;
    termina-ejecucion
finalizar-programa
