iniciar-programa
   define-nueva-instruccion gira(n) como inicio
      repetir n veces
         gira-izquierda;
   fin;
   define-nueva-instruccion norte como inicio
      mientras no-orientado-al-norte hacer
         gira(1);
   fin;
   define-nueva-instruccion sur como inicio
      mientras no-orientado-al-sur hacer
         gira(1);
   fin;
   define-nueva-instruccion este como inicio
      mientras no-orientado-al-este hacer
         gira(1);
   fin;
   define-nueva-instruccion oeste como inicio
      mientras no-orientado-al-oeste hacer
         gira(1);
   fin;
   define-nueva-instruccion ve(n) como inicio
      oeste;
      mientras frente-libre hacer
         avanza;
      sur;
      mientras frente-libre hacer
         avanza;
      este;
      repetir n veces
         avanza;
      norte;
   fin;
   define-nueva-instruccion exp(n) como inicio
      si no si-es-cero(n) entonces inicio
         si frente-libre entonces inicio
            avanza;
            exp(precede(n));
         fin;
      fin
      sino inicio
         deja-zumbador;
      fin;
   fin;
   define-nueva-instruccion cuenta(n) como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         cuenta(sucede(n));
      fin
      sino inicio
         mientras frente-libre hacer
            exp(n);
      fin;
   fin;
   define-nueva-instruccion calculo(n) como inicio
      oeste;
      avanza;
      norte;
      mientras no-junto-a-zumbador hacer inicio
         repetir n veces
            avanza;
      fin;
   fin;
   define-nueva-instruccion prepa(n) como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         prepa(sucede(n));
      fin
      sino inicio
         calculo(n);
      fin;
   fin;
   define-nueva-instruccion recursivo como inicio
      si frente-libre entonces inicio
         avanza;
         recursivo;
         deja-zumbador;
      fin
      sino inicio
         ve(2);
      fin;
   fin;
   inicia-ejecucion
      ve(0);
      cuenta(0);
      ve(1);
      prepa(0);
      sur;
      recursivo;
      apagate;
   termina-ejecucion
finalizar-programa