iniciar-programa
define-nueva-instruccion junta(n) como inicio
si frente-libre entonces inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
junta(sucede(n));
fin
sino inicio
si frente-libre entonces inicio
avanza;
junta(n);
fin;
fin ;
fin
sino  inicio
repetir n veces inicio
deja-zumbador;
fin;
mientras no-orientado-al-oeste hacer gira-izquierda;
si frente-libre entonces inicio
avanza;
 mientras no-orientado-al-norte hacer gira-izquierda;
 fin;
fin;
fin;
define-nueva-instruccion has(n) como inicio
mientras orientado-al-oeste hacer inicio
repetir n veces inicio
si junto-a-zumbador y no-orientado-al-norte entonces coge-zumbador
sino inicio
mientras no-orientado-al-norte hacer gira-izquierda;
avanza;
repetir n veces deja-zumbador;
si junto-a-zumbador entonces  coge-zumbador;
mientras no-orientado-al-este hacer gira-izquierda;
fin;
fin;
si orientado-al-oeste entonces inicio
si frente-libre entonces avanza;
deja-zumbador;
mientras no-orientado-al-este hacer gira-izquierda;
si frente-libre entonces avanza;
 mientras no-orientado-al-oeste hacer gira-izquierda;

  fin
  sino inicio
  si orientado-al-este entonces inicio
  mientras junto-a-zumbador hacer inicio
  si junto-a-zumbador entonces coge-zumbador;
  mientras no-orientado-al-sur hacer gira-izquierda;
  si frente-libre entonces avanza;
  deja-zumbador;
  mientras no-orientado-al-norte hacer gira-izquierda;
  si frente-libre entonces avanza;
  fin;
  mientras no-orientado-al-sur hacer gira-izquierda;
  si frente-libre entonces avanza;
  mientras no-orientado-al-oeste hacer gira-izquierda;
  si frente-libre entonces avanza
  sino
  mientras no-orientado-al-norte hacer gira-izquierda;
  fin;
  fin;

   fin;




fin;
define-nueva-instruccion bace(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
 bace(sucede(n));
 fin
 sino inicio
 mientras frente-libre hacer avanza;
 mientras no orientado-al-este hacer gira-izquierda;
 repetir 11 veces avanza;
 mientras no-orientado-al-oeste hacer gira-izquierda;
 has(n);
 fin;
    fin;

    inicia-ejecucion
    mientras no-orientado-al-este hacer gira-izquierda;
    repetir 11 veces avanza;

     mientras frente-libre hacer inicio
    mientras no-orientado-al-norte hacer gira-izquierda;
    avanza;
    avanza;
    mientras no-orientado-al-sur hacer gira-izquierda;
    junta(0);
    fin;
    mientras no-orientado-al-norte hacer gira-izquierda;
    mientras frente-libre y no-junto-a-zumbador hacer avanza;
    mientras no-orientado-al-sur hacer gira-izquierda;
    bace(0);



        apagate;
    termina-ejecucion
finalizar-programa

