iniciar-programa
Define-nueva-instruccion zumbadores(n) como inicio
    repetir n veces coge-zumbador;
fin;
Define-nueva-instruccion Ubica como inicio
  Mientras no-orientado-al-oeste hacer
      Gira-izquierda;
  Mientras Frente-libre hacer avanza;
  Repetir 2 veces gira-izquierda;
fin;
Define-nueva-instruccion LLeva(n) como inicio
   repetir 2 veces gira-izquierda;
   Mientras Frente-libre hacer avanza;
   repetir n veces deja-zumbador;
fin;
Define-nueva-instruccion Libera como inicio
 Ubica;
   Si junto-a-zumbador entonces inicio
     Coge-zumbador;
     Si junto-a-zumbador entonces inicio
       Coge-zumbador;
         Mientras Frente-libre hacer avanza;
         Si junto-a-zumbador entonces inicio
           coge-zumbador;
           si junto-a-zumbador entonces  inicio
              deja-zumbador;
            Repetir 2 veces Deja-zumbador;
            fin
            sino inicio
                Repetir 2 veces deja-zumbador;
                LLeva(1);
              fin;
         fin
         sino
          repetir 2 veces deja-zumbador;
       fin
       sino inicio
        deja-zumbador;
        Mientras Frente-libre hacer avanza;
         Si junto-a-zumbador entonces inicio
           coge-zumbador;
           si junto-a-zumbador entonces
            deja-zumbador
           sino inicio
            LLeva(1);
           fin;
      fin;
      fin;
    fin
   sino inicio
     Mientras frente-libre hacer avanza;
     si junto-a-zumbador entonces inicio
          coge-zumbador;
          si junto-a-zumbador entonces
            deja-zumbador
          sino  inicio
           lleva(1);
          fin;
     fin;
   fin;
fin;
Define-nueva-instruccion Acomoda como inicio
   ubica;
   avanza;
   Mientras Frente-libre hacer inicio
    Mientras no-junto-a-zumbador y frente-libre hacer avanza;
    Si junto-a-zumbador y frente-libre entonces inicio
       coge-zumbador;
       si junto-a-zumbador entonces inicio
          coge-zumbador;
          repetir 2 veces gira-izquierda;
           lleva(2);
           ubica;
           avanza;
       fin sino inicio
           lleva(1);
           repetir 2 veces gira-izquierda;
           avanza;
         fin;
       fin;
   fin;
fin;
Define-nueva-instruccion Reparte(n) como inicio
   Si junto-a-zumbador entonces inicio
       zumbadores(n);
       reparte(n);
        repetir n veces deja-zumbador;
        avanza;
   fin;
fin;
    inicia-ejecucion
    Libera;
    Acomoda;
    repetir 2 veces gira-izquierda;
    Reparte(2);
    ubica;
    Reparte(1);
        apagate;
    termina-ejecucion
finalizar-programa
