iniciar-programa
define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;
define-nueva-instruccion deja como
  si frente-libre entonces
  inicio
  gira(1);
  avanza;
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  gira(2);
  avanza;
  gira(1);
  fin
  sino
  inicio
  gira(1);
  avanza;
  gira(1);
  avanza;
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  gira(2);
  avanza;
  gira(3);
  avanza;
  gira(1);
  fin;
define-nueva-instruccion casa como
inicio
mientras no-orientado-al-sur hacer gira(1);
mientras frente-libre hacer avanza;
gira(3);
mientras frente-libre hacer avanza;
gira(2);
fin;
define-nueva-instruccion ubica como
si no-junto-a-zumbador entonces repetir 5 veces
inicio
mientras no-junto-a-zumbador y frente-libre hacer avanza;
si frente-bloqueado y no-junto-a-zumbador entonces gira(1);
fin;
define-nueva-instruccion cuenta como
si junto-a-zumbador entonces
inicio
coge-zumbador;
cuenta;
si frente-bloqueado entonces gira(1);
si frente-libre y junto-a-zumbador entonces avanza
sino
inicio
ubica;
fin;
ubica;
fin;
    inicia-ejecucion
    mientras no-orientado-al-este hacer gira(1);
    casa;
    mientras junto-a-zumbador hacer
    inicio
    ubica;
    cuenta;
    si junto-a-zumbador entonces deja;
    fin;
    casa;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
