iniciar-programa
define-nueva-instruccion gira(n) como
  Repetir n veces gira-izquierda;

define-nueva-instruccion busca-zumbador como
inicio
   gira-izquierda;
    mientras no-junto-a-zumbador y frente-libre hacer
        avanza;
      gira(2);
    si junto-a-zumbador entonces
        apagate;
    mientras frente-libre hacer avanza;
   gira-izquierda;
fin;

inicia-ejecucion
    mientras no-orientado-al-sur hacer  gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    mientras no-junto-a-zumbador hacer
        inicio
       si derecha-libre entonces
            inicio
                gira(3);
                avanza;
                si derecha-libre entonces
                    inicio
                        gira(3);
                        avanza;
                        busca-zumbador;
                    fin
                    sino
                      inicio
                            busca-zumbador;
                            si frente-libre entonces
                                avanza;
                      fin;
            fin;
       si derecha-bloqueada y frente-libre entonces
            inicio
                busca-zumbador;
                avanza;
            fin;
       si derecha-bloqueada y izquierda-bloqueada y frente-bloqueado entonces
                gira(2);
       si derecha-bloqueada y frente-bloqueado entonces
                gira-izquierda;
fin;

apagate;
termina-ejecucion
finalizar-programa

