iniciar-programa

define-nueva-instruccion gira-derecha como inicio
repetir 3 veces
gira-izquierda;
fin;

define-nueva-instruccion empezar como inicio
mientras frente-libre hacer inicio
avanza;
fin;
gira-derecha;
mientras frente-libre hacer inicio
avanza;
fin;
si izquierda-bloqueada y frente-bloqueado entonces inicio
gira-derecha;
fin;
fin;

    inicia-ejecucion

     empezar;

     mientras frente-libre hacer inicio

     mientras frente-libre hacer inicio

    si junto-a-zumbador entonces
     inicio
      coge-zumbador;
       si no junto-a-zumbador entonces
       inicio
        deja-zumbador;
        avanza;
       fin
     sino
     si junto-a-zumbador entonces
     inicio
     coge-zumbador;

     si junto-a-zumbador entonces inicio
     deja-zumbador;
     deja-zumbador;
     apagate;
     fin
     sino
     si no junto-a-zumbador entonces inicio
     deja-zumbador;
     deja-zumbador;
     avanza;
     fin;
     fin;
     fin;



     si no-junto-a-zumbador entonces inicio
     si frente-libre entonces
     avanza;
     fin;
     fin;

     gira-derecha;
     si frente-libre entonces
     avanza;
     gira-derecha;

mientras frente-libre hacer inicio
si no junto-a-zumbador entonces inicio
avanza;
fin;
     si junto-a-zumbador entonces
      inicio
       coge-zumbador;
      si no junto-a-zumbador entonces
      inicio
       deja-zumbador;
       avanza;
      fin
      sino si junto-a-zumbador entonces inicio
       coge-zumbador;
       si junto-a-zumbador entonces
       inicio
        deja-zumbador;
        deja-zumbador;
        apagate;
       fin
     sino si no junto-a-zumbador entonces inicio
     deja-zumbador;
     deja-zumbador;
     avanza;
     fin;

     si no-junto-a-zumbador entonces inicio
     si frente-libre entonces
     avanza;
     fin;

     fin;
     fin;

     fin;

     gira-izquierda;
     si frente-libre entonces
     avanza;
     gira-izquierda;

     fin;
        apagate;
    termina-ejecucion
finalizar-programa
