iniciar-programa
   define-nueva-instruccion recoge-col como inicio
      mientras frente-libre hacer inicio
         mientras junto-a-zumbador hacer inicio
            coge-zumbador;
         fin;
         avanza;
      fin;
      si frente-bloqueado entonces inicio
        mientras junto-a-zumbador hacer inicio
            coge-zumbador;
         fin;
         gira-izquierda;
         gira-izquierda;
      fin;
         mientras frente-libre hacer inicio
            avanza;
         fin;
         gira-izquierda;
         si frente-libre entonces inicio
            avanza;
            gira-izquierda;
            recoge-col;
         fin sino inicio
            sal-de-instruccion
         fin;
   fin;
   define-nueva-instruccion dejar como inicio
     si frente-bloqueado entonces inicio
        gira-izquierda;
        avanza;
        gira-izquierda;
     fin;
        mientras frente-libre hacer inicio
           avanza;
        fin;
        gira-izquierda;
        mientras frente-libre hacer inicio
           avanza;
        fin;
        mientras algun-zumbador-en-la-mochila hacer inicio
           deja-zumbador;
        fin;
   fin;
   define-nueva-instruccion dejar2 como inicio
     si frente-bloqueado entonces inicio
        gira-izquierda;
        avanza;
        gira-izquierda;
     fin;
        mientras frente-libre hacer inicio
           avanza;
        fin;
        gira-izquierda;
        mientras frente-libre hacer inicio
           avanza;
        fin;
           gira-izquierda;
           avanza;
        mientras algun-zumbador-en-la-mochila hacer inicio
           deja-zumbador;
        fin;
   fin;
   define-nueva-instruccion irb1 como inicio
      si frente-libre entonces inicio
         repetir 5 veces avanza;
         repetir 3 veces gira-izquierda;
         avanza;
         repetir 3 veces gira-izquierda;
         avanza;
         repetir 2 veces gira-izquierda;
         recoge-col;
         dejar;
      fin;
    fin;
    define-nueva-instruccion irb2 como inicio
      si frente-bloqueado entonces inicio
       gira-izquierda;
       gira-izquierda;
       repetir 5 veces avanza;
       repetir 3 veces gira-izquierda;
       repetir 7 veces avanza;
       repetir 3 veces gira-izquierda;
       avanza;
       repetir 2 veces gira-izquierda;
       recoge-col;
       dejar2;
      fin;
    fin;
    define-nueva-instruccion compara como inicio
       mientras junto-a-zumbador hacer inicio
          coge-zumbador;
          avanza;
          si junto-a-zumbador entonces inicio
             coge-zumbador;
             repetir 2 veces gira-izquierda;
             avanza;
             repetir 2 veces gira-izquierda;
          fin
           sino inicio
                repetir 2 veces gira-izquierda;
                avanza;
                deja-zumbador;
                sal-de-instruccion;
          fin;
       fin;
    fin;
    define-nueva-instruccion mitad como inicio
       si junto-a-zumbador entonces inicio
          repetir 3 veces gira-izquierda;
          mientras junto-a-zumbador hacer inicio
             coge-zumbador;
          fin;
           avanza;
           mientras algun-zumbador-en-la-mochila hacer inicio
              deja-zumbador;
              repetir 3 veces gira-izquierda;
              avanza;
              deja-zumbador;
              repetir 2 veces gira-izquierda;
              avanza;
              repetir 3 veces gira-izquierda;
           fin;
       fin
       sino inicio
          repetir 2 veces gira-izquierda;
          avanza;
          mientras junto-a-zumbador hacer inicio
             coge-zumbador;
          fin;
          repetir 2 veces gira-izquierda;
          avanza;
          repetir 3 veces gira-izquierda;
          avanza;
          mientras algun-zumbador-en-la-mochila hacer inicio
              deja-zumbador;
              repetir 3 veces gira-izquierda;
              avanza;
              deja-zumbador;
              repetir 2 veces gira-izquierda;
              avanza;
              repetir 3 veces gira-izquierda;
           fin;
       fin;
   fin;
    inicia-ejecucion
        irb1;
        irb2;
        repetir 2 veces gira-izquierda;
        avanza;
        repetir 2 veces gira-izquierda;
        compara;
        mientras no-orientado-al-este hacer inicio
           gira-izquierda;
           fin;
           mientras frente-libre hacer inicio
              avanza;
           fin;
           mientras algun-zumbador-en-la-mochila hacer inicio
              deja-zumbador;
            fin;
        repetir 2 veces gira-izquierda;
        mientras frente-libre hacer inicio
           avanza;
        fin;
        mitad;
        mientras junto-a-zumbador hacer inicio
           coge-zumbador;
        fin;
        mientras no-orientado-al-sur hacer inicio
           gira-izquierda;
        fin;
        avanza;
        mientras algun-zumbador-en-la-mochila hacer inicio
           deja-zumbador;
        fin;
        apagate;
    termina-ejecucion
finalizar-programa
