iniciar-programa
define-nueva-instruccion gira (n) como
  inicio
    repetir n veces gira-izquierda;
  fin;
  define-nueva-instruccion orienta como
    inicio
      mientras izquierda-libre hacer gira-izquierda;
      si orientado-al-sur o orientado-al-norte entonces
        inicio
          mientras no-orientado-al-sur hacer gira-izquierda;
          mientras frente-libre hacer avanza;
          gira(3);
          mientras frente-libre hacer avanza;
          apagate;
        fin
       sino
         si orientado-al-este o orientado-al-oeste entonces
            inicio
               mientras no-orientado-al-oeste hacer gira-izquierda;
               mientras frente-libre hacer avanza;
               gira(1);
               mientras frente-libre hacer avanza;
               apagate;

            fin;


    fin;
 define-nueva-instruccion encuentra como
    inicio
      repetir 2 veces deja-zumbador;
       repetir 4 veces
         inicio
           si frente-libre entonces
             inicio
               avanza;
                si frente-bloqueado y no junto-a-zumbador entonces
                  orienta;
                 si junto-a-zumbador entonces
                   inicio
                     coge-zumbador;
                      si junto-a-zumbador entonces
                        deja-zumbador
                      sino
                       encuentra;
                   fin
                   sino
                    encuentra;

                gira(2);
                si frente-libre entonces avanza;
                gira(2);

             fin;

             gira(1);

         fin;


    fin;

 define-nueva-instruccion deja como
   inicio


    si frente-bloqueado y izquierda-bloqueada y derecha-libre entonces
      gira(3);

     si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces
         gira(2);
       si frente-libre y izquierda-bloqueada entonces
         avanza;

     si izquierda-libre  entonces
         inicio
         gira(1);
         si frente-libre entonces avanza;
        fin;



   fin;
    inicia-ejecucion
     mientras izquierda-libre hacer
       gira-izquierda;
       repetir 2 veces deja-zumbador;

       mientras frente-libre o frente-bloqueado hacer
        inicio
          deja;
          si junto-a-zumbador entonces
             inicio
               coge-zumbador;
                 si junto-a-zumbador entonces
                   encuentra
                sino
                 deja-zumbador;
             fin;
          si no-junto-a-zumbador entonces deja-zumbador;
         fin;


        apagate;
    termina-ejecucion
finalizar-programa
