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


define-nueva-instruccion lleva (k) como inicio
 si junto-a-zumbador entonces inicio
  coge-zumbador;
   lleva (k);
    deja-zumbador;

    fin
    sino inicio
     mientras frente-libre hacer avanza;
      gira-izquierda;
       mientras derecha-bloqueada hacer avanza;
       gira (3);
       avanza;
       gira (3);
       mientras frente-libre hacer avanza;
      gira-izquierda;
     repetir k veces avanza;
    gira (2);
  fin;
fin;




define-nueva-instruccion pasa (k) como inicio
 si frente-libre y no-junto-a-zumbador entonces inicio
  avanza;
  si frente-bloqueado y no-junto-a-zumbador entonces apagate;
   pasa (sucede(k));

   fin
   sino inicio
    lleva (k);
     mientras frente-libre hacer avanza;
      gira (3);
       mientras izquierda-bloqueada hacer avanza;
       gira-izquierda;
       mientras frente-libre hacer avanza;
      gira-izquierda;
     mientras frente-libre hacer avanza;
    gira-izquierda;
   fin;
fin;


    inicia-ejecucion

    mientras no-orientado-al-este hacer gira-izquierda;

    pasa (0);

    si frente-bloqueado y no-junto-a-zumbador entonces apagate;
    
    mientras no-junto-a-zumbador hacer pasa (0);

        apagate;
    termina-ejecucion
finalizar-programa
