 iniciar-programa

    define-nueva-instruccion Resta(num) como

        si no si-es-cero(num) entonces inicio

            si junto-a-zumbador entonces inicio

                coge-zumbador;

                Resta(Precede(num));

            fin

            sino inicio

                mientras algun-zumbador-en-la-mochila hacer deja-zumbador;

                gira-izquierda;

                gira-izquierda;

                avanza;

            fin;

        fin;

    define-nueva-instruccion Cuenta(num) como

        si algun-zumbador-en-la-mochila entonces inicio

            deja-zumbador;

            Cuenta(Sucede(num));

        fin

        sino inicio

            avanza;

            Resta(num);

        fin;

    inicia-ejecucion

        mientras orientado-al-norte hacer inicio

            mientras junto-a-zumbador hacer coge-zumbador;

            Cuenta(0);

        fin;

        gira-izquierda;

        mientras orientado-al-este hacer inicio

            mientras junto-a-zumbador hacer coge-zumbador;

            Cuenta(0);

        fin;

        apagate;

    termina-ejecucion

finalizar-programa