iniciar-programa
define-nueva-instruccion gira (r) como inicio
repetir r veces gira-izquierda;
fin;


define-nueva-instruccion acomoda (a) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   acomoda (sucede(a));
    deja-zumbador;
     fin
     sino inicio
     repetir a veces avanza;
     gira (2);
     si frente-libre entonces avanza;
   gira (2);
 fin;
fin;


define-nueva-instruccion viaja (k) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   viaja (sucede(k));
    deja-zumbador;
    fin
   sino inicio
  repetir k veces avanza;
 fin;
fin;


define-nueva-instruccion lugar como inicio
 si frente-libre entonces inicio
  avanza;
  lugar;                            
  deja-zumbador;
 fin;
fin;




    inicia-ejecucion

    gira (3);

    acomoda (0);
    mientras frente-libre hacer avanza;
    gira (2);
    acomoda (0);
    si frente-libre entonces avanza;


    mientras no-junto-a-zumbador hacer inicio
     gira (2);
      si frente-libre entonces avanza;
       gira (2);
        viaja (0);
         si frente-libre entonces avanza;
         mientras no-junto-a-zumbador hacer avanza;
         gira (2);
         viaja (0);
         si frente-libre entonces avanza;
        mientras no-junto-a-zumbador hacer avanza;
      gira (2);
     si frente-libre entonces avanza;
    fin;

    gira (2);
    si frente-libre entonces avanza;
    gira (2);
    lugar;






        apagate;
    termina-ejecucion
finalizar-programa
