iniciar-programa
DEFINE-NUEVA-INSTRUCCION  contando COMO INICIO
mientras NO(frente-bloqueado y derecha-bloqueada y no-junto-a-zumbador) hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;

si no-junto-a-zumbador entonces inicio
contando;
si frente-bloqueado y derecha-bloqueada entonces inicio
gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda;
mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;

fin;
si izquierda-libre entonces inicio
gira-izquierda;
avanza;
 gira-izquierda;
 mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;
fin;
mientras junto-a-zumbador hacer inicio
avanza;
fin;
deja-zumbador;
sal-de-instruccion;

fin
sino
inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si no-junto-a-zumbador o junto-a-zumbador entonces inicio
contando;
si frente-bloqueado y derecha-bloqueada entonces inicio
gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda;
mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;

fin;
  si izquierda-bloqueada entonces inicio
  repetir 3 veces gira-izquierda;
  avanza;
    repetir 3 veces gira-izquierda;
     mientras frente-libre hacer avanza;
     repetir 2 veces gira-izquierda;
  fin;
  mientras junto-a-zumbador hacer inicio
avanza;
fin;
repetir 2 veces deja-zumbador;
 sal-de-instruccion;
fin;


fin;
fin;
fin;
si frente-libre  y no-junto-a-zumbador entonces avanza;

si frente-bloqueado  y derecha-libre y no-junto-a-zumbador entonces inicio
repetir 2 veces gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda;
si frente-libre entonces avanza;
gira-izquierda;
fin;
fin;
FIN;
    inicia-ejecucion
    mientrAS NO-ORIENTADO-AL-SUR HACER GIRA-IZQUIERDA;
    MIENTRAS FRENTE-LIBRE HACER AVANZA;
    MIENTRAS NO-ORIENTADO-AL-OESTE HACER GIRA-IZQUIERDA;
    MIENTRAS FRENTE-LIBRE HACER AVANZA;
    REPETIR 3 VECES GIRA-IZQUIERDA;
    contando;
        apagate;
    termina-ejecucion
finalizar-programa
