iniciar-programa
define-nueva-instruccion g(g) como inicio
    repetir g veces gira-izquierda;
fin;
define-nueva-instruccion acomoda(x) como inicio
    si orientado-al-este entonces inicio
        g(2);
        mientras frente-libre hacer avanza;
        g(3);
        mientras frente-libre hacer avanza;
        g(3);
        mientras frente-libre hacer avanza;
        g(3);
    fin;
    mientras orientado-al-sur hacer inicio
        mientras no-junto-a-zumbador y frente-libre y orientado-al-sur hacer avanza;
        si junto-a-zumbador y frente-libre entonces inicio
            coge-zumbador;
            si frente-libre y orientado-al-sur entonces avanza;
            acomoda(sucede(x));
        fin;
        si frente-bloqueado y derecha-libre y orientado-al-sur entonces inicio
            g(2);
            mientras frente-libre hacer avanza;
            g(1);
            avanza;
            g(1);
        fin;
        si frente-bloqueado y derecha-bloqueada y orientado-al-sur entonces inicio
            g(1);
            mientras frente-libre y junto-a-zumbador hacer avanza;
            repetir x veces deja-zumbador;
        fin;
    fin;
fin;
    inicia-ejecucion
    g(3);
    repetir 10 veces acomoda(0);
        apagate;
    termina-ejecucion
finalizar-programa
