iniciar-programa

  define-nueva-instruccion norte como inicio
       mientras no-orientado-al-norte 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 oeste como inicio
       mientras no-orientado-al-oeste hacer inicio
           gira-izquierda;
       fin;
  fin;


  define-nueva-instruccion buscar como inicio

            si junto-a-zumbador entonces inicio

            fin sino  inicio
               deja-zumbador;




           norte;
           si frente-libre entonces  inicio
             avanza;
             buscar;
             sur;
             avanza;
           fin;

           este;
           si frente-libre entonces inicio
             avanza;
             buscar;
             oeste;
             avanza;
           fin;

           sur;
           si frente-libre entonces  inicio
             avanza;
             buscar;
             norte;
             avanza;
           fin;

           oeste;
           si frente-libre entonces  inicio
              avanza;
              buscar;
              este;
              avanza;
           fin;
         fin;
    fin;

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

    define-nueva-instruccion recorre como inicio
        mientras junto-a-zumbador y frente-libre hacer avanza;
             si no-junto-a-zumbador entonces inicio

               buscar;
               ir11;
               deja-zumbador;

             fin;
                si frente-bloqueado y orientado-al-este entonces inicio
                 norte;
                 si frente-libre entonces avanza;
                 oeste;
                fin;

                    si frente-bloqueado y orientado-al-oeste y derecha-libre entonces inicio
                       norte;
                       si frente-libre entonces avanza;
                       este;
                    fin;
                            si frente-bloqueado y orientado-al-oeste y derecha-bloqueada entonces inicio
                            ir11;
                            coge-zumbador;
                            coge-zumbador;

                                apagate;
                            fin;

                            recorre;

    fin;

    define-nueva-instruccion cuenta como inicio
   ir11;
   deja-zumbador;
   este;
fin;



    inicia-ejecucion
    ir11;
         buscar;
         cuenta;
         recorre;


    termina-ejecucion
finalizar-programa
