iniciar-programa
    define-nueva-instruccion norte como inicio
         mientras no-orientado-al-norte hacer inicio
             gira-izquierda;
         fin;
    fin;
    define-nueva-instruccion sur como inicio
         mientras no-orientado-al-sur hacer inicio
             gira-izquierda;
         fin;
    fin;
    define-nueva-instruccion este como inicio
         mientras no-orientado-al-este hacer inicio
             gira-izquierda;
         fin;
    fin;
    define-nueva-instruccion oeste como inicio
         mientras no-orientado-al-oeste hacer inicio
             gira-izquierda;
         fin;
    fin;
    define-nueva-instruccion uno como inicio
       sur;
       mientras frente-libre hacer inicio
          avanza;
       fin;
       oeste;
       mientras frente-libre hacer inicio
          avanza;
       fin;
       norte;
    fin;
    define-nueva-instruccion dos como inicio
       uno;
       este;
       avanza;
    fin;
    define-nueva-instruccion marcar1(n) como inicio
       mientras frente-libre hacer inicio
          repetir n veces inicio
             si frente-libre entonces inicio
                avanza;
             fin;
          fin;
          deja-zumbador;
       fin;
    fin;

    define-nueva-instruccion cuenta1(n) como inicio
         si junto-a-zumbador entonces inicio
            coge-zumbador;
            cuenta1 (sucede (n));
         fin sino inicio
            marcar1(n);
         fin;
    fin;
    define-nueva-instruccion marcar2(n) como inicio
       mientras no-junto-a-zumbador hacer inicio
          repetir n veces inicio
                avanza;
          fin;
       fin;
    fin;
    define-nueva-instruccion distancia como inicio
         si frente-libre entonces inicio
            avanza;
            distancia;
            deja-zumbador;
         fin sino inicio
            este;
            avanza;
            avanza;
         fin;
    fin;
    define-nueva-instruccion cuenta2(n) como inicio
         si junto-a-zumbador entonces inicio
            coge-zumbador;
            cuenta2 (sucede (n));
         fin sino inicio
            uno;
            marcar2(n);
            sur;
            distancia;
         fin;
    fin;
    inicia-ejecucion
        uno;
        cuenta1(0);
        dos;
        cuenta2(0);
        apagate;
    termina-ejecucion
finalizar-programa
