iniciar-programa

   define-nueva-instruccion encuentro(n) como inicio
      si orientado-al-este entonces inicio
             repetir 2 veces gira-izquierdA;
             fin;
      mientras frente-libre hacer inicio
           avanza;
           encuentro(sucede(n));
           repetir n veces deja-zumbador;
           apagate;
     fin;
   fin;

   define-nueva-instruccion colocalo(n) como inicio
       si junto-a-zumbador entonces inicio
           coge-zumbador;
           colocalo(sucede(n));
       si orientado-al-norte entonces inicio
         avanza;
         repetir n veces deja-zumbador;
         repetir 2 veces gira-izquierda;
         avanza;
         gira-izquierda;
         mientras frente-libre hacer avanza;
       fin;
      fin;
   fin;

   define-nueva-instruccion colo-calo(n) como inicio
       si no-orientado-al-norte entonces inicio
           mientras no-orientado-al-este hacer gira-izquierda;
           mientras frente-libre hacer avanza;
           gira-izquierda;
           fin;
       si junto-a-zumbador entonces inicio
           coge-zumbador;
           colo-calo(sucede(n));
       si orientado-al-norte entonces inicio
         avanza;
         repetir n veces deja-zumbador;
         repetir 2 veces gira-izquierda;
         avanza;
       fin;
      fin;
   fin;

  define-nueva-instruccion mexico(n) como inicio
           si orientado-al-oeste entonces inicio
           mientras frente-libre hacer avanza;
           mientras no-orientado-al-norte hacer gira-izquierda;
           avanza;
           fin;
       si junto-a-zumbador entonces inicio
           coge-zumbador;
           mexico(sucede(n));
       si orientado-al-norte entonces inicio
         repetir n veces deja-zumbador;
         repetir 2 veces gira-izquierda;
         avanza;

         gira-izquierda;
       fin;
       mientras junto-a-zumbador hacer avanza;
       deja-zumbador;
       avanza;
      fin;

   fin;

     define-nueva-instruccion oaxaca(n) como inicio
           si no-orientado-al-norte entonces inicio
           mientras no-orientado-al-este hacer gira-izquierda;
           mientras frente-libre hacer avanza;
           gira-izquierda;
           avanza;
           fin;
       si junto-a-zumbador entonces inicio      
           coge-zumbador;
           oaxaca(sucede(n));
       si orientado-al-norte entonces inicio
         repetir n veces deja-zumbador;
         repetir 2 veces gira-izquierda;
         avanza;
         repetir 3 veces gira-izquierda;
       fin;
       mientras junto-a-zumbador hacer avanza;
       deja-zumbador;
       avanza;
      fin;
   fin;
    inicia-ejecucion
        colocalo(1);
        colo-calo(1);
        mientras no-junto-a-zumbador hacer inicio
        oaxaca(1);
        mexico(1);
         si junto-a-zumbador entonces encuentro(0);
        fin;
        apagate;
    termina-ejecucion
finalizar-programa
