iniciar-programa

define-nueva-instruccion norte  como inicio
   mientras no orientado-al-norte hacer inicio
     gira-izquierda;
    fin;
  fin;

define-nueva-instruccion oeste como inicio
   mientras no orientado-al-oeste hacer inicio
     gira-izquierdA;
    fin;
    fin;
define-nueva-instruccion este como inicio
    mientras no orientado-al-este hacer inicio
      gira-izquierda;
     fin;
  fin;

define-nueva-instruccion sur  como inicio
   mientras no orientado-al-sur hacer inicio
     gira-izquierda;
    fin;
  fin;

define-nueva-instruccion iresq como inicio
   oeste;
    mientras frente-libre hacer inicio
      avanza;
     fin;
     sur;
     mientras frente-libre hacer inicio
        avanza;
       fin;

  fin;

define-nueva-instruccion recoger(n) como inicio
   si junto-a-zumbador entonces inicio
      coge-zumbador;
      recoger (sucede(n));

     fin sino inicio
       iresq;
     fin;
   si orientado-al-este entonces inicio
        deja-zumbador;
       si frente-libre entonces inicio
        avanza;
        fin;
    fin sino  inicio
       este;
   fin;

  fin;


define-nueva-instruccion busca como inicio
   norte;
     avanza;
     avanza;
     este;

   mientras no junto-a-zumbador hacer inicio
     si frente-libre entonces inicio
        avanza;
       fin sino inicio
         norte;
         si frente-libre entonces inicio
             avanza;
             si izquierda-libre entonces inicio
                gira-izquierda;
              fin sino inicio
                 repetir 3 veces inicio
                   gira-izquierdA;
                  fin;
              fin;
           fin sino inicio
               apagate;
           fin;
      fin;
     fin;
      si junto-a-zumbador entonces inicio
      recoger(0);
       iresq;
       busca;
     fin;
  fin;



    inicia-ejecucion
         busca;
                          
        apagate;
    termina-ejecucion
finalizar-programa
