iniciar-programa
    define-prototipo-instruccion impar(n);
    define-nueva-instruccion par como
    inicio
        mientras no-orientado-al-oeste hacer gira-izquierda;
        mientras frente-libre hacer avanza;
        gira-izquierda;
        mientras frente-libre hacer avanza;
        gira-izquierda; avanza;
        mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
        repetir 2 veces gira-izquierda; avanza;
    fin;
    define-nueva-instruccion inicia como
    inicio
        mientras no-orientado-al-norte hacer gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 3 veces gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 3 veces gira-izquierda;
        impar(0);
    fin;
    define-nueva-instruccion revisa(n) como
    inicio
           si frente-libre entonces
            inicio
                avanza;
                impar(n);
            fin sino si derecha-libre entonces
            inicio
                repetir 3 veces gira-izquierda;
                avanza;
                repetir 3 veces gira-izquierda;
                mientras frente-libre hacer avanza;
                repetir 2 veces gira-izquierda;
                impar(n);
            fin sino si algun-zumbador-en-la-mochila entonces
            inicio
                  deja-zumbador;
                  gira-izquierda;
                  avanza;
                  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                  repetir 2 veces gira-izquierda;
                  avanza;
                  inicia;
                  impar(0);
            fin;
    fin;
    define-nueva-instruccion cuenta(n) como
    inicio
        si junto-a-zumbador entonces
        inicio
            coge-zumbador;
            cuenta(sucede(n));
        fin sino impar(n);
    fin;
    define-nueva-instruccion impar(n) como
    inicio
        si frente-bloqueado y derecha-bloqueada entonces
        inicio
            si algun-zumbador-en-la-mochila entonces
            inicio
                deja-zumbador;
                par;
                inicia;
            fin sino apagate;
        fin;
        si si-es-cero(n) y junto-a-zumbador entonces cuenta(n)
            sino si junto-a-zumbador entonces
            inicio
                repetir n veces si junto-a-zumbador entonces
                inicio
                    coge-zumbador;
                fin sino mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                si junto-a-zumbador entonces
                inicio
                   mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                   repetir n veces coge-zumbador;
                   revisa(n);
                   impar(n);
                fin  sino
                    inicio
                        par;
                        inicia;
                    fin;
            fin sino revisa(n);
    fin;
    inicia-ejecucion
        inicia;
        apagate;
    termina-ejecucion
finalizar-programa
