iniciar-programa
define-nueva-instruccion media-vuelta como inicio
repetir 2 veces gira-izquierda;
fin;
define-nueva-instruccion gira-derecha como inicio
repetir 3 veces gira-izquierda
fin;
    inicia-ejecucion
    si no-orientado-al-norte entonces inicio
    si orientado-al-sur entonces media-vuelta;
    si orientado-al-este entonces gira-izquierda;
    si orientado-al-oeste entonces gira-derecha;
    fin;
    mientras junto-a-zumbador y frente-libre hacer inicio
    mientras junto-a-zumbador y frente-libre hacer avanza;
    si frente-bloqueado y junto-a-zumbador entonces inicio
    si junto-a-zumbador y izquierda-libre entonces gira-izquierda;
    si frente-libre entonces avanza;
    si no junto-a-zumbador entonces inicio
    si no-junto-a-zumbador entonces media-vuelta;
    si frente-libre y no-junto-a-zumbador entonces repetir 2 veces avanza;
    si no-junto-a-zumbador entonces inicio
    si no-junto-a-zumbador entonces media-vuelta;
    si frente-libre entonces avanza;
    apagate;
    fin;
    fin;
    fin;
    si no-junto-a-zumbador entonces inicio
    si no-junto-a-zumbador entonces media-vuelta;
    si frente-libre y no-junto-a-zumbador entonces avanza;
    si junto-a-zumbador entonces gira-izquierda;
    si frente-libre y junto-a-zumbador entonces avanza sino media-vuelta;
    si no-junto-a-zumbador entonces inicio
    si no-junto-a-zumbador entonces media-vuelta;
    si frente-libre y no-junto-a-zumbador entonces repetir 2 veces avanza;
    si no-junto-a-zumbador entonces inicio
    si no-junto-a-zumbador entonces media-vuelta;
    si frente-libre entonces avanza;
    apagate;
    fin;
    fin;
    fin;
    si frente-bloqueado y junto-a-zumbador entonces inicio
    si junto-a-zumbador y izquierda-libre entonces gira-izquierda sino gira-derecha;
    si frente-libre entonces avanza;
    si no junto-a-zumbador entonces inicio
    si no-junto-a-zumbador entonces media-vuelta;
    si frente-libre y no-junto-a-zumbador entonces repetir 2 veces avanza;
    si no-junto-a-zumbador entonces inicio
    si no-junto-a-zumbador entonces media-vuelta;
    si frente-libre entonces avanza;
    apagate;
    fin;
    fin;
    fin;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
