iniciar-programa

 define-nueva-instruccion caminar2 como inicio

 si frente-libre entonces inicio
 si junto-a-zumbador entonces coge-zumbador;
 avanza;
 caminar2;
 avanza;
 fin
 sino

 inicio
 repetir 2 veces gira-izquierda;
 coge-zumbador;
 fin;
 fin;
 define-nueva-instruccion caminar como inicio
si frente-libre entonces inicio
si junto-a-zumbador entonces coge-zumbador;
avanza;
caminar;
avanza;
fin
sino inicio
repetir 2 veces gira-izquierda;
coge-zumbador;
mientras frente-libre hacer avanza;
deja-zumbador;
repetir 2 veces gira-izquierda;
mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;
fin;

fin;

define-nueva-instruccion gira-derecha como inicio
repetir 3 veces gira-izquierda;
fin;
define-nueva-instruccion viga  como inicio
mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;
mientras no-junto-a-zumbador y frente-libre hacer avanza;


si frente-bloqueado entonces inicio
gira-derecha;
si junto-a-zumbador entonces inicio
caminar;
repetir 2 veces gira-izquierda;
fin;
si frente-bloqueado entonces inicio
repetir 2 veces gira-izquierda;
mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
mientras frente-libre hacer avanza;
gira-izquierda;
mientras frente-libre hacer inicio
si junto-a-zumbador entonces coge-zumbador;
avanza;
fin;
si junto-a-zumbador entonces coge-zumbador;
gira-izquierda;
mientras frente-libre hacer avanza;
gira-derecha;
avanza;
mientras algun-zumbador-en-la-mochila hacer deja-zumbador ;
apagate;
fin;
avanza;
gira-derecha;
viga;
fin;
 si junto-a-zumbador entonces inicio
gira-derecha;
caminar;
gira-derecha;

mientras frente-libre hacer inicio
si junto-a-zumbador entonces inicio
repetir 3 veces gira-izquierda;
caminar2;
gira-derecha;
fin;
avanza;
si junto-a-zumbador entonces inicio
repetir 3 veces gira-izquierda;
caminar2;
gira-derecha;
fin;

fin;

gira-derecha;
si frente-bloqueado entonces inicio
repetir 2 veces gira-izquierda;
mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
mientras frente-libre hacer avanza;
gira-izquierda;
mientras frente-libre hacer inicio
si junto-a-zumbador entonces coge-zumbador;
avanza;
fin;
si junto-a-zumbador entonces coge-zumbador;
gira-izquierda;
mientras frente-libre hacer avanza;
gira-derecha;
avanza;
mientras algun-zumbador-en-la-mochila hacer deja-zumbador ;
apagate;
fin;
avanza;
gira-derecha;
viga;
fin;
fin;
 inicia-ejecucion
  MIENTRAS FRENTE-LIBRE HACER AVANZA;
    GIRA-IZQUIERDA;
    MIENTRAS FRENTE-LIBRE HACER AVANZA;
    GIRA-IZQUIERDA;
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
    si junto-a-zumbador entonces inicio
    gira-izquierda;
    avanza;
    mientras junto-a-zumbador y frente-libre hacer inicio
    coge-zumbador;
    avanza;
    fin;
    coge-zumbador;
    repetir 2 veces gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;

    mientras frente-libre hacer avanza;
    repetir 2 veces gira-izquierda;
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
    si junto-a-zumbador entonces inicio
    gira-derecha;
    avanza;
    si no-junto-a-zumbador entonces inicio
    repetir 2 veces gira-izquierda;
    avanza;
    gira-derecha;
    mientras frente-libre hacer avanza;
    gira-derecha;
    avanza;
    gira-derecha;
    viga;
    fin;
    mientras junto-a-zumbador y frente-libre hacer inicio
    coge-zumbador;
    avanza;
    fin;
    repetir 2 veces gira-izquierda;
    coge-zumbador;
    mientras frente-libre hacer avanza;
    coge-zumbador;
    gira-derecha;
    mientras frente-libre Y NO-JUNTO-A-ZUMBADOR HACER avanza;
    SI JUNTO-A-ZUMBADOR ENTONCES INICIO

    GIRA-DERECHA;
    AVANZA;
    SI NO-JUNTO-A-ZUMBADOR ENTONCES INICIO
    REPETIR 2 VECES GIRA-IZQUIERDA;
    AVANZA;
    GIRA-DERECHA;
    MIENTRAS FRENTE-LIBRE HACER AVANZA;
    GIRA-DERECHA;
    AVANZA;
    GIRA-DERECHA;
    VIGA;
    FIN;
    MIENTRAS FRENTE-LIBRE HACER INICIO
    COGE-ZUMBADOR;
    AVANZA;
    FIN;
    REPETIR 2  VECES GIRA-IZQUIERDA;
    SI JUNTO-A-ZUMBADOR ENTONCES COGE-ZUMBADOR;
    MIENTRAS FRENTE-LIBRE HACER AVANZA;
    SI JUNTO-A-ZUMBADOR ENTONCES COGE-ZUMBADOR;
    GIRA-DERECHA;
    MIENTRAS FRENTE-LIBRE HACER AVANZA;
    FIN;

    gira-derecha;
    avanza;
    gira-derecha;
    viga;
    fin;
    fin;
    viga;

        apagate;
    termina-ejecucion
finalizar-programa


