iniciar-programa


define-nueva-instruccion recorre (k) como inicio
 si no si-es-cero (k) entonces inicio
  si no-junto-a-zumbador entonces inicio
   repetir 8 veces inicio
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
     si no-junto-a-zumbador entonces gira-izquierda;
      fin;
      fin
     sino inicio
    si frente-bloqueado entonces gira-izquierda;
   avanza;
  fin;

  si no-junto-a-zumbador entonces inicio
   repetir 8 veces inicio
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
     si no-junto-a-zumbador entonces gira-izquierda;
      fin;
      fin;

       si no-junto-a-zumbador entonces inicio
      mientras no-orientado-al-oeste hacer gira-izquierda;
     mientras frente-libre hacer avanza;
    gira-izquierda;
   mientras frente-libre hacer avanza;
  repetir k veces deja-zumbador;
 apagate;
fin;

    recorre (precede(k));
    fin;



fin;



define-nueva-instruccion bloque (k) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   bloque (sucede(k));
    fin
    sino inicio
    recorre (k);


 fin;
fin;





    inicia-ejecucion

    mientras no-orientado-al-oeste hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;


    mientras junto-a-zumbador hacer bloque (0);


        apagate;
    termina-ejecucion
finalizar-programa
