iniciar-programa
    define-nueva-instruccion gira (n) como inicio
        repetir n veces
            gira-izquierda;
    fin;

    define-nueva-instruccion orienta como inicio
        gira (1);
        avanza;
        gira (3);
        avanza;
        gira (1);
        avanza;
        gira (1);
        avanza;
        gira (3);
    fin;

    define-nueva-instruccion recoge (a) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            recoge (a);
        fin
        sino inicio
            gira (2);
            avanza;
            gira (1);
            avanza;
            gira (3);
            avanza;
            gira(3);
            avanza;
    fin;
    si no-orientado-al-este entonces
    gira (1);
    si orientado-al-este entonces
    repetir a veces
    deja-zumbador;
    fin;

    define-nueva-instruccion multiplica (n) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            multiplica (sucede(n));
        fin
        sino inicio
            avanza;
            recoge (n);
        fin;
    fin;

    define-nueva-instruccion orientar como inicio
        avanza;
        avanza;
        gira (1);
        avanza;
    fin;

    define-nueva-instruccion vuelta como inicio
        gira (2);
        avanza;
        mientras junto-a-zumbador hacer
            coge-zumbador;
        gira (1);
        avanza;
        gira (1);
        avanza;
        avanza;
        gira (1);
        avanza;
        deja-zumbador;
        avanza;
        gira (1);
        avanza;
        avanza;
        gira (1);
        avanza;
        gira (1);
        avanza;
    fin;

    define-nueva-instruccion ubicate (n) como inicio
        gira (2);
        avanza;
        gira (1);
        avanza;
        gira (1);
        avanza;
        mientras junto-a-zumbador hacer inicio
            repetir n veces inicio
                si junto-a-zumbador entonces inicio
                   coge-zumbador;
                   gira (2);
                   avanza;
                   deja-zumbador;
                   gira (2);
                   avanza;
                fin
                sino inicio
                     apagate;
                fin;
            fin;
            vuelta;
        fin;
    fin;

    define-nueva-instruccion divide (n) como inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            divide (sucede(n));
        fin
        sino inicio
            ubicate (n);
        fin;
    fin;

    inicia-ejecucion
    orienta;
    multiplica (0);
    si no-junto-a-zumbador entonces
       mientras no-orientado-al-este hacer
          gira(1);
    orientar;
    divide (0);
        apagate;
    termina-ejecucion
finalizar-programa