iniciar-programa
define-nueva-instruccion gira-derecha como inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
fin;

define-nueva-instruccion media-vuelta como inicio
gira-izquierda;
gira-izquierda;
fin;

define-nueva-instruccion recorrido10 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido10;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
recorrido10;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;


define-nueva-instruccion recorrido9 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido9;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
recorrido9;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;

define-nueva-instruccion recorrido8 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido8;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
recorrido8;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;

define-nueva-instruccion recorrido7 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido7;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
recorrido7;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;

define-nueva-instruccion recorrido6 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido6;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
recorrido6;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;

define-nueva-instruccion recorrido5 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido5;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
fin;
recorrido5;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;


define-nueva-instruccion recorrido4 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido4;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
fin;
recorrido4;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;

define-nueva-instruccion recorrido3 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido3;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
fin;
recorrido3;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;

define-nueva-instruccion recorrido2 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido2;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
fin;
recorrido2;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
media-vuelta;
avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;

define-nueva-instruccion recorrido1 como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
recorrido1;
fin
sino inicio
si frente-bloqueado entonces inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
fin;
recorrido1;
fin;
fin;
fin
sino inicio
si frente-libre entonces inicio
avanza;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
media-vuelta;
repetir 2 veces avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
gira-izquierda;
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
mientras frente-libre hacer avanza;
fin;
fin;
fin;
fin;
deja-zumbador;
fin;

    inicia-ejecucion
        repetir 2 veces avanza;
        recorrido1;
        coge-zumbador;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido2;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido3;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido4;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido5;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido6;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido7;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido8;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido9;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        repetir 2 veces avanza;
        recorrido10;
        coge-zumbador;
        media-vuelta;
        mientras frente-libre hacer avanza;
        gira-derecha;
        apagate;
    termina-ejecucion
finalizar-programa
