iniciar-programa
define-nueva-instruccion gira-derecha como inicio
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;
     fin;

    define-nueva-instruccion media-vuelta como inicio
 gira-izquierda;
 gira-izquierda;
 fin;



    define-nueva-instruccion siembra como inicio
     mientras frente-libre y orientado-al-norte hacer inicio
     deja-zumbador;
     avanza;
     si frente-bloqueado y orientado-al-norte entonces
     deja-zumbador;

     mientras frente-bloqueado y orientado-al-norte hacer inicio
     media-vuelta;
      fin;
      mientras orientado-al-sur y frente-libre y junto-a-zumbador hacer inicio
      avanza;
        fin;

      mientras frente-bloqueado y orientado-al-sur y izquierda-libre hacer inicio
      gira-izquierda;
      avanza;
      gira-izquierda;
      fin;

      fin;
      fin;

      define-nueva-instruccion recolecta-1 como inicio
          si junto-a-zumbador entonces inicio
           coge-zumbador;
           si frente-libre entonces inicio
            avanza;
            fin
            sino si frente-bloqueado y orientado-al-norte entonces inicio
             media-vuelta;
             mientras frente-libre y orientado-al-sur  hacer inicio
              avanza;
              si frente-bloqueado y derecha-libre entonces inicio
               gira-derecha;
               avanza;
               gira-derecha;
               fin;
               fin;
             fin;
           recolecta-1;
            si orientado-al-norte entonces inicio
             deja-zumbador;
             fin;
             fin;
             fin;

      define-nueva-instruccion compara como inicio
 si junto-a-zumbador entonces inicio
 coge-zumbador;
 compara;
 si junto-a-zumbador entonces
coge-zumbador;
 fin
 sino inicio
 mientras algun-zumbador-en-la-mochila hacer
 deja-zumbador;
 avanza;
 avanza;
 avanza;
fin;
fin;

    define-nueva-instruccion deja como inicio
      si junto-a-zumbador entonces inicio
       coge-zumbador;
       deja;
       si orientado-al-oeste entonces inicio
       deja-zumbador;
        fin;
       fin
       sino si no junto-a-zumbador entonces inicio
        mientras no orientado-al-sur hacer inicio
         gira-izquierda;
         fin;
          mientras frente-libre y orientado-al-sur  o orientado-al-oeste y frente-libre hacer inicio
           avanza;
           si frente-bloqueado y orientado-al-sur entonces inicio
             gira-derecha;

             fin;
             fin;
         fin;

        fin;

    inicia-ejecucion

    mientras no orientado-al-este hacer inicio
     gira-izquierda;
     fin;
     mientras frente-libre y no junto-a-zumbador hacer inicio
         avanza;
         fin;
         si junto-a-zumbador entonces inicio
           repetir 500 veces coge-zumbador;
           fin;
         gira-izquierda;
                    avanza;


             gira-izquierda;
             avanza;

             mientras frente-libre y orientado-al-oeste y derecha-bloqueada hacer inicio
              avanza;
              fin;
              si derecha-libre entonces inicio
               gira-derecha;
               avanza;
               gira-derecha;
               fin;
               si frente-libre entonces inicio
                avanza;
                gira-izquierda;
                siembra;
                fin;

           si frente-bloqueado y orientado-al-sur entonces inicio
           media-vuelta;
           recolecta-1;
           fin;

             avanza;
             avanza;
             avanza;


             si derecha-libre entonces inicio
               gira-derecha;
               avanza;
              gira-izquierda;
                siembra;
                fin;

           si frente-bloqueado y orientado-al-sur entonces inicio
           media-vuelta;
           recolecta-1;
           fin;

          avanza;
          avanza;
          mientras algun-zumbador-en-la-mochila hacer inicio
           deja-zumbador;
           fin;
          si ningun-zumbador-en-la-mochila entonces inicio
           media-vuelta;
           avanza;
           avanza;
           compara;
           fin;

          si junto-a-zumbador entonces inicio
 mientras algun-zumbador-en-la-mochila hacer
 deja-zumbador;
 fin
 sino inicio
 mientras algun-zumbador-en-la-mochila hacer
 deja-zumbador;
gira-izquierda;
 gira-izquierda;
 avanza;
 avanza;
 avanza
fin;

       deja;

        apagate;
    termina-ejecucion
finalizar-programa
 