iniciar-programa
define-nueva-instruccion influenza como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        influenza;
        mientras (frente-libre o derecha-libre) hacer inicio
            si junto-a-zumbador entonces inicio
               coge-zumbador;
               si no junto-a-zumbador entonces inicio
                   repetir 2 veces inicio
                       si frente-libre entonces inicio
                           avanza;
                           si no junto-a-zumbador entonces repetir 2 veces deja-zumbador;
                           repetir 2 veces gira-izquierdA;
                           si frente-libre entonces avanza;
                           gira-izquierdA;
                       fin
                       sino repetir 3 veces gira-izquierda;
                   fin;
                   repetir 2 veces inicio
                       si frente-libre entonces inicio
                           avanza;
                           si no junto-a-zumbador entonces deja-zumbador;
                           repetir 2 veces gira-izquierda;
                           si frente-libre entonces avanza;
                           gira-izquierda;
                       fin
                       sino repetir 3 veces gira-izquierda;
                   fin;
                   si frente-libre o derecha-libre entonces deja-zumbador;
               fin;
            fin;
            si frente-bloqueado y derecha-libre entonces inicio
                repetir 2 veces gira-izquierda;
                mientras frente-libre hacer avanza;
                gira-izquierdA;
                si frente-libre entonces avanza;
                gira-izquierdA;
            fin
            sino si frente-libre entonces avanza;
        fin;
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            si no junto-a-zumbador entonces inicio
                repetir 2 veces gira-izquierda;
                repetir 2 veces inicio
                    si frente-libre entonces inicio
                        avanza;
                        si no junto-a-zumbador entonces deja-zumbador;
                        repetir 2 veces gira-izquierda;
                        si frente-libre entonces avanza;
                        gira-izquierda;
                    fin
                    sino repetir 3 veces gira-izquierda;
                fin;
                deja-zumbador;
            fin;
        fin;
        repetir 2 veces gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 3 veces gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 3 veces gira-izquierda;
    fin;
fin;
define-nueva-instruccion cuenta como inicio
    si (frente-libre o derecha-libre) o junto-a-zumbador entonces inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            si frente-bloqueado y derecha-libre entonces inicio
                repetir 2 veces gira-izquierda;
                mientras frente-libre hacer avanza;
                gira-izquierda;
                si frente-libre entonces avanza;
                gira-izquierda;
            fin
            sino si frente-libre entonces avanza;
            cuenta;
            deja-zumbador;
        fin
        sino inicio
            si frente-bloqueado y derecha-libre entonces inicio
                repetir 2 veces gira-izquierda;
                mientras frente-libre hacer avanza;
                gira-izquierdA;
                si frente-libre entonces avanza;
                gira-izquierda;
            fin
            sino si frente-libre entonces avanza;
            cuenta;
        fin;
    fin
    sino inicio
        repetir 2 veces gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 3 veces gira-izquierda;
        mientras frente-libre hacer avanzA;
        repetir 3 veces gira-izquierda;
    fin;
fin;
    inicia-ejecucion
    influenza;
    cuenta;
        apagate;
    termina-ejecucion
finalizar-programa
