iniciar-programa

define-nueva-instruccion queso como inicio
si junto-a-zumbador entonces inicio
apagate;
fin;
fin;

define-nueva-instruccion gira-derecha como inicio
repetir 3 veces inicio
gira-izquierda;
fin;
fin;

define-nueva-instruccion busca-a como inicio
si orientado-al-este entonces inicio
si derecha-libre y frente-bloqueado entonces inicio
gira-derecha;
mientras izquierda-bloqueada y orientado-al-sur hacer inicio
si frente-libre entonces inicio
queso;
avanza;
fin
sino inicio
si izquierda-libre y frente-bloqueado entonces inicio
gira-izquierda;
avanza;
fin;
repetir 1 veces inicio
gira-izquierda;
fin;
fin;
fin;
si izquierda-libre y orientado-al-sur entonces inicio
gira-izquierda;
avanza;
fin;
fin;
fin;
fin;

define-nueva-instruccion busca-salida como inicio
si frente-bloqueado y orientado-al-este entonces inicio
si izquierda-libre y derecha-libre entonces inicio
si izquierda-libre entonces inicio
gira-izquierda;
fin;
mientras derecha-bloqueada y orientado-al-norte hacer inicio
si frente-libre entonces inicio
queso;
avanza;
fin
sino inicio
si derecha-libre y frente-bloqueado entonces inicio
gira-derecha;
avanza;
fin;
repetir 3 veces inicio
gira-izquierda;
fin;
busca-a;
fin;
fin;
si derecha-libre y orientado-al-norte entonces inicio
gira-derecha;
avanza;
fin;
fin
sino inicio
si izquierda-bloqueada entonces inicio
busca-a;
fin;

si derecha-bloqueada y izquierda-libre entonces inicio
gira-izquierda;
mientras derecha-bloqueada y orientado-al-norte hacer  inicio
si frente-libre entonces inicio
queso;
avanza;
fin
sino inicio
si derecha-libre y frente-bloqueado entonces inicio
gira-derecha;
avanza;
fin;
repetir 3 veces inicio
gira-izquierda;
fin;
fin;
fin;
si derecha-libre y orientado-al-norte entonces inicio
gira-derecha;
avanza;
fin;
fin;

fin;
fin
sino inicio
si frente-libre y orientado-al-este entonces inicio
avanza;
fin;
fin;
fin;


    inicia-ejecucion
     mientras no junto-a-zumbador hacer inicio
     busca-salida;


     fin;

        apagate;
    termina-ejecucion
finalizar-programa
