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

define-nueva-instruccion arriba(n) como
inicio
si si-es-cero(N) entonces
gira(2)
sino
si junto-a-zumbador entonces
inicio
coge-zumbador;
arriba(precede(n));
deja-zumbador;
fin;
fin;

define-nueva-instruccion cuenta(n)como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
cuenta(sucede(n));
deja-zumbador;
fin
sino
inicio
avanza;
arriba(n);
si orientado-al-sur entonces
inicio
avanza;
gira(2);
fin
sino
inicio
gira(2);
avanza;
fin
fin;
fin;

define-nueva-instruccion oeste(n)como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
oeste(sucede(n));
deja-zumbador;
fin
sino
inicio
avanza;
arriba(n);
si orientado-al-oeste entonces
inicio
avanza;
gira(2);
fin
sino
inicio
gira(2);
avanza;
fin
fin;
fin;


    inicia-ejecucion
    cuenta(0);
   mientras orientado-al-norte hacer
   inicio
   avanza;
   cuenta(0);
   fin;
   gira(1);
    oeste(0);
   mientras orientado-al-este hacer
   inicio
   avanza;
  oeste (0);
   fin;
   gira-izquierda;
        apagate;
    termina-ejecucion
finalizar-programa
