iniciar-programa

define-nueva-instruccion media-vuelta como inicio
repetir 2 veces gira-izquierda;
fin;

define-nueva-instruccion gira-derecha como inicio
media-vuelta;
gira-izquierda;
fin;

define-nueva-instruccion baja como inicio
si orientado-al-este entonces gira-derecha;
si orientado-al-norte entonces media-vuelta;
si orientado-al-oeste entonces gira-izquierda;
mientras frente-libre hacer avanza;
media-vuelta;
mientras no-junto-a-zumbador hacer inicio
si no junto-a-zumbador y algun-zumbador-en-la-mochila y orientado-al-norte entonces deja-zumbador;
si frente-libre entonces avanza;
fin;
fin;

    inicia-ejecucion

    mientras algun-zumbador-en-la-mochila hacer inicio

    si no orientado-al-este entonces inicio
    si orientado-al-sur entonces gira-izquierda;
    si orientado-al-norte entonces gira-derecha;
    si orientado-al-oeste entonces media-vuelta;
    fin;

    si no junto-a-zumbador y algun-zumbador-en-la-mochila y frente-libre entonces deja-zumbador;

    si no orientado-al-sur entonces inicio
    mientras orientado-al-este hacer baja;
    fin;

    mientras junto-a-zumbador hacer inicio
    media-vuelta;
    mientras junto-a-zumbador y frente-libre y orientado-al-norte hacer inicio
    si junto-a-zumbador y frente-libre y orientado-al-norte entonces avanza sino apagate;
    fin;
    si junto-a-zumbador y frente-bloqueado y orientado-al-norte entonces apagate;
    fin;

    gira-derecha;
    si frente-libre entonces avanza sino apagate;

    fin;

        apagate;
    termina-ejecucion
finalizar-programa
