iniciar-programa
define-nueva-instruccion media-vuelta como repetir 2 veces gira-izquierda;
define-nueva-instruccion gira-derecha como repetir 3 veces gira-izquierda;

define-nueva-instruccion coloca como inicio
mientras frente-libre y (izquierda-bloqueada) hacer inicio
avanza;
fin;

 si derecha-bloqueada y izquierda-bloqueada y derecha-bloqueada entonces inicio
 si no junto-a-zumbador entonces inicio
 deja-zumbador;
 fin sino
 si junto-a-zumbador entonces inicio
 si orientado-al-oeste y derecha-bloqueada y izquierda-bloqueada y frente-bloqueado entonces inicio
 media-vuelta;
 avanza; avanza; avanza;
 gira-izquierda;
 si frente-libre entonces inicio
 avanza; avanza; gira-izquierda; avanza;
 si frente-bloqueado entonces inicio
 deja-zumbador;
 fin sino inicio
 apagate;
 fin;
 fin sino inicio
 apagate;
 fin;
 fin;
 apagate;
 fin;

 fin;

 si frente-bloqueado y izquierda-bloqueada entonces inicio
 Gira-derecha;
 si frente-libre entonces avanza;
 coloca;
 fin
 sino
 si frente-bloqueado y izquierda-libre entonces inicio
 Gira-izquierda;
 si frente-libre entonces avanza;
 coloca;
 fin;

 si izquierda-libre entonces inicio
 Gira-izquierda;
 si frente-libre entonces avanza;
 Coloca;
 fin;

fin;


    inicia-ejecucion
    si derecha-bloqueada y izquierda-bloqueada entonces inicio
    media-vuelta;
    si derecha-bloqueada y izquierda-bloqueada entonces inicio
    gira-derecha;
    si derecha-bloqueada y izquierda-bloqueada entonces inicio
    media-vuelta;
    si derecha-bloqueada y izquierda-bloqueada entonces inicio
    apagate;
    fin;
    fin;
    fin;

    fin;


    mientras no orientado-al-sur hacer inicio
    gira-izquierda;
    fin;
    mientras frente-libre hacer
    avanza;
    gira-derecha;
    coloca;

    apagate;
    termina-ejecucion
finalizar-programa
 