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 colegio como inicio
      oeste;
      mientras frente-libre hacer
         avanza;
      este;
      mientras derecha-bloqueada y frente-libre hacer
         avanza;
      si derecha-libre entonces inicio
         sur;
         avanza;
         colegio;
      fin;
   fin;
   define-nueva-instruccion final como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         final;
         deja-zumbador;
      fin
      sino inicio
         colegio;
         mientras junto-a-zumbador hacer
            coge-zumbador;
      fin;
   fin;
   define-nueva-instruccion rutas(n) como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         rutas(sucede(n));
      fin
      sino inicio
         repetir n veces
            deja-zumbador;
         avanza;
         repetir n veces
            deja-zumbador;
      fin;
   fin;
   define-nueva-instruccion eleccion como inicio
      mientras junto-a-zumbador hacer
         coge-zumbador;
      este;
      si frente-libre entonces inicio
         avanza;
         oeste;
         rutas(0);
      fin;
      sur;
      si frente-libre entonces inicio
         avanza;
         norte;
         rutas(0);
      fin;
   fin;
   define-nueva-instruccion solucion como inicio
      este;
      mientras frente-libre hacer
         avanza;
      oeste;
      mientras frente-libre hacer inicio
         eleccion;
         oeste;
         avanza;
      fin;
      eleccion;
   fin;
   define-nueva-instruccion superior como inicio
      este;
      mientras izquierda-bloqueada y frente-libre hacer
         avanza;
      si izquierda-libre entonces inicio
         norte;
         avanza;
         solucion;
         superior;
      fin;
   fin;
   define-nueva-instruccion proceso como inicio
       colegio;
       oeste;
       mientras frente-libre hacer inicio
          deja-zumbador;
          avanza;
       fin;
       deja-zumbador;
       superior;
       oeste;
       mientras frente-libre hacer
          avanza;
       final;
       apagate;
   fin;
   inicia-ejecucion
      proceso;
      apagate;
   termina-ejecucion
finalizar-programa