iniciar-programa
define-nueva-instruccion gira-derecha como
repetir 3 veces inicio
    gira-izquierda;
fin;
define-nueva-instruccion agarra como inicio mientras junto-a-zumbador hacer inicio coge-zumbador; fin; fin;
define-nueva-instruccion avanzar como mientras frente-libre y no-junto-a-zumbador y izquierda-libre  hacer inicio avanza; fin;
define-nueva-instruccion vuelta como
repetir 2 veces gira-izquierda;
inicia-ejecucion
mientras no-orientado-al-este hacer inicio
     gira-izquierda;
fin;
repetir  28 veces inicio
    avanza;
fin;
vuelta;
si junto-a-zumbador entonces inicio
    coge-zumbador;
    si no-junto-a-zumbador entonces inicio
        avanza;
        si junto-a-zumbador entonces inicio
            coge-zumbador;
        fin;
        si junto-a-zumbador entonces inicio
             mientras frente-libre hacer inicio
            avanza;
        fin;
        fin sino inicio
            mientras frente-libre hacer inicio
                avanza;
            fin;
            vuelta;
            avanza;
            avanza;
            si junto-a-zumbador entonces inicio
            coge-zumbador;
            si no-junto-a-zumbador entonces inicio
               vuelta;
               mientras frente-libre hacer inicio
               avanza;
               fin;
               vuelta; agarra;
               avanza;
               avanza; agarra;
               deja-zumbador;
               avanza;  agarra;
               deja-zumbador;
               avanza;   agarra;
               deja-zumbador;
               avanza;   agarra;
               deja-zumbador;
               avanza;   agarra;
               deja-zumbador;
               avanza;   agarra;
               deja-zumbador;
               deja-zumbador;
               avanza;   agarra;
               repetir 3 veces inicio
                   deja-zumbador;
               fin;
               avanza;   agarra;
               repetir 3 veces inicio
                   deja-zumbador;
               fin;
               avanza;   agarra;
               repetir 3 veces inicio
                   deja-zumbador;
               fin;
               avanza; agarra;
               repetir 3 veces inicio
                   deja-zumbador;
               fin;
               avanza;   agarra;
               repetir 4 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 4 veces inicio
                   deja-zumbador;
               fin;
               avanza;   agarra;
               repetir 5 veces inicio
                   deja-zumbador;
               fin;
               avanza;   agarra;
               repetir 6 veces inicio
                   deja-zumbador;
               fin;
               avanza;   agarra;
               repetir 7 veces inicio
                   deja-zumbador;
               fin;
               avanza;    agarra;
               repetir 8 veces inicio
                   deja-zumbador;
               fin;
               avanza;    agarra;
               repetir 8 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 8 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 10 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 11 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 14 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 17 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 19 veces inicio
                   deja-zumbador;
               fin;
               avanza;   agarra;
               repetir 21 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 26 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 34 veces inicio
                   deja-zumbador;
               fin;
               avanza;  agarra;
               repetir 55 veces inicio
                   deja-zumbador;
               fin;
               apagate;
               fin;

            fin sino inicio
                vuelta;
                deja-zumbador;
                avanza;
                avanza;
            fin;
        fin;
    fin sino inicio
        deja-zumbador;
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;
fin;

    mientras frente-libre hacer inicio
            avanza;
        fin;
    mientras no-orientado-al-norte hacer inicio
    gira-izquierda;
    fin;
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    fin;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
    fin;
    vuelta;
    si frente-libre entonces inicio
    avanza;
    fin;
    mientras frente-libre hacer inicio
    avanza;
    fin;
     mientras no-orientado-al-este hacer inicio
    gira-izquierda;
    fin;

    avanza;
    avanza;
    mientras junto-a-zumbador y frente-libre hacer inicio
    si frente-libre y junto-a-zumbador entonces inicio
    si junto-a-zumbador entonces inicio
    gira-izquierda;
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    fin;
    mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
    si frente-libre entonces avanza;
    fin;
    vuelta;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    gira-izquierda;
    fin;
    fin;
    si frente-libre entonces inicio
    avanza;
    fin;
    fin;
    si junto-a-zumbador entonces inicio
    gira-izquierda;
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    fin;
    mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
    si frente-libre entonces avanza;
    fin;
    vuelta;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    vuelta;
    fin sino inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    vuelta;
    si frente-libre entonces inicio
    avanza;
    fin;
    gira-derecha;
    mientras izquierda-libre hacer inicio
    avanzar;
    si orientado-al-oeste y no-junto-a-zumbador entonces inicio
    gira-izquierda;
    si frente-libre entonces inicio
    avanza;
    fin;
    gira-izquierda;
    fin;
    avanzar;
    si orientado-al-este y no-junto-a-zumbador entonces inicio
    gira-derecha;
     si frente-libre entonces inicio
    avanza;
    fin;
    gira-derecha;
    fin;
    mientras frente-libre y no-junto-a-zumbador hacer inicio
    avanza;
    fin;

    si junto-a-zumbador entonces inicio
    mientras no-orientado-al-sur hacer inicio
    gira-izquierda;
    fin;
    si derecha-libre entonces inicio
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    si frente-libre entonces avanza;
    fin;
    vuelta;
    avanzar;
    gira-izquierda;
    avanzar;
    gira-izquierda;
    mientras junto-a-zumbador hacer inicio
    si frente-libre entonces
    avanza;
    fin;
    mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
    fin;
    vuelta;
    avanzar;
    gira-derecha;
    gira-derecha;
    si frente-libre entonces inicio
    avanza;
    fin;
    gira-izquierda;
    fin;
    fin;
    fin;

    mientras no-orientado-al-oeste hacer inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer avanza;
    gira-derecha;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    vuelta;
    mientras junto-a-zumbador y frente-libre hacer inicio
    mientras junto-a-zumbador hacer avanza;
    vuelta;
     si frente-libre entonces inicio
     avanza;
     vuelta;
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    fin;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    gira-izquierda;
    avanza;
    avanza;
    mientras junto-a-zumbador hacer inicio
    avanza;
    fin;
    mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
    fin;
    mientras no-orientado-al-oeste hacer inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer avanza;
    gira-derecha;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    vuelta;
    avanza;
    si junto-a-zumbador entonces inicio
    mientras junto-a-zumbador y frente-libre hacer inicio
    avanza;
    fin;
    vuelta;
    si frente-libre entonces inicio
    avanza;
    fin;
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    fin;
    vuelta;
     mientras frente-libre hacer inicio
    avanza;
    fin;
    gira-izquierda;
    avanza;
    avanza;
    mientras junto-a-zumbador hacer inicio
    avanza;
    fin;
    mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
    fin;
    mientras no-orientado-al-oeste hacer inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer avanza;
    gira-derecha;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    vuelta;
    avanza;
    fin;
    fin;
    fin;
    mientras frente-libre hacer inicio
    avanza;
    fin;
    si junto-a-zumbador entonces inicio
    gira-izquierda;
    mientras junto-a-zumbador hacer inicio
    coge-zumbador;
    fin;
    avanza;
    avanza;
    mientras junto-a-zumbador hacer inicio
    avanza;
    fin;
    mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
    fin;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
