iniciar-programa
    define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;
    define-nueva-instruccion ChecaFin(C)como inicio
        si si-es-cero(C) entonces inicio
            avanza;
            si derecha-bloqueada entonces repetir 5 veces deja-zumbador;
            apagate;
        fin;
    fin;
    define-nueva-instruccion Responde(R) como inicio
        si frente-libre y izquierda-bloqueada entonces inicio
            si izquierda-bloqueada entonces inicio
                si orientado-al-norte entonces inicio
                    ChecaFin(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(R))))))))))))))))))))))))))))))))))))))))))))))))
                    )))))))))))))))))))))))))))))))))))))))))))))))))))));
                    avanza;
                    Responde(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (R)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                fin sino inicio
                    si orientado-al-sur entonces inicio
                        checaFin(precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        R)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                        avanza;
                        Responde(precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        R)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                    fin
                    sino inicio
                        si orientado-al-este entonces inicio
                            checaFin(sucede(R));
                            avanza;
                            Responde(sucede(R));
                        fin
                        sino inicio
                            si orientado-al-oeste entonces inicio
                                checaFin(precede(R));
                                avanza;
                                Responde(precede(R));
                            fin;
                        fin;
                    fin;
                fin;
            fin
            sino inicio
                gira(3);
                repetir 5 veces deja-zumbador;
                Responde(R);
            fin;
        fin
        sino inicio
            si izquierda-bloqueada entonces inicio
                gira(3);
                repetir 5 veces deja-zumbador;
                Responde(R);
            fin
            sino inicio
                gira(1);
                repetir 5 veces deja-zumbador;
                si orientado-al-norte entonces inicio
                    ChecaFin(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(R))))))))))))))))))))))))))))))))))))))))))))))))
                    )))))))))))))))))))))))))))))))))))))))))))))))))))));
                    avanza;
                    Responde(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede(sucede
                    (R)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                fin sino inicio
                    si orientado-al-sur entonces inicio
                        checaFin(precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        R)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                        avanza;
                        Responde(precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        precede(precede(precede(precede(precede(precede(precede(precede(precede(precede(
                        R)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
                    fin
                    sino inicio
                        si orientado-al-este entonces inicio
                            checaFin(sucede(R));
                            avanza;
                            Responde(sucede(R));
                        fin
                        sino inicio
                            si orientado-al-oeste entonces inicio
                                checaFin(precede(R));
                                avanza;
                                Responde(precede(R));
                            fin;
                        fin;
                    fin;
                fin;
            fin;
        fin;
    fin;
    inicia-ejecucion
        si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces
            inicio repetir 20 veces deja-zumbador; apagate; fin;
        repetir 5 veces deja-zumbador;
        Responde(0);
        apagate;
    termina-ejecucion
finalizar-programa
