iniciar-programa

define-nueva-instruccion ciclo(n) como inicio
  repetir 2 veces gira-izquierda;
  repetir 2 veces avanza;
  gira-izquierda;
  avanza;

si junto-a-zumbador entonces inicio
 avanza;
 si junto-a-zumbador entonces inicio
  avanza;
  si junto-a-zumbador entonces inicio
   avanza;
   si junto-a-zumbador entonces inicio
    repetir 2 veces gira-izquierda;
    repetir 2 veces avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
   fin
   sino inicio
    repetir 2 veces gira-izquierda;
    repetir 2 veces avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
    si junto-a-zumbador entonces coge-zumbador;
    repetir n veces deja-zumbador;
    apagate;

   fin;

  fin;

 fin;
fin;


fin;
define-nueva-instruccion grande(n) como inicio

 si junto-a-zumbador entonces inicio
    coge-zumbador;
    si junto-a-zumbador entonces inicio
     coge-zumbador;
     grande(sucede(n));
    fin
    sino inicio
      deja-zumbador;
      si no-orientado-al-norte entonces inicio
       repetir 2 veces gira-izquierda;
       avanza;
       gira-izquierda;
       grande(n);
     fin
      sino inicio
         ciclo(n);
         grande(n);
      fin;
    fin;
   fin
   sino inicio
    si frente-libre entonces avanza;
    grande(n);
   fin;

fin;
define-nueva-instruccion peque como inicio
   gira-izquierda;
   avanza;
   gira-izquierda;
   avanza;
   repetir 2 veces gira-izquierda;
   si junto-a-zumbador entonces inicio
    avanza;
    si junto-a-zumbador entonces inicio
     avanza;
     si junto-a-zumbador entonces inicio
      avanza;
       si junto-a-zumbador entonces inicio
          repetir 2 veces gira-izquierda;
          repetir 2 veces avanza;
          gira-izquierda;
          avanza;
          gira-izquierda;
       fin
       sino inicio
         repetir 2 veces gira-izquierda;
         repetir 2 veces avanza;
         gira-izquierda;
         avanza;
         si junto-a-zumbador entonces coge-zumbador;
         apagate;
       fin;
     fin;
    fin;
   fin;


fin;
    inicia-ejecucion
    peque;
    grande(0);
        apagate;
    termina-ejecucion
finalizar-programa
