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-prototipo-instruccion recoge;
define-prototipo-instruccion repite26;

define-nueva-instruccion recoge2 como inicio
si junto-a-zumbador  entonces inicio
coge-zumbador;
avanza;
recoge2;
repite26;
fin
sino inicio
si no-junto-a-zumbador y frente-libre  entonces inicio
avanza;
recoge2;
repite26;
fin;
fin;
fin;

define-nueva-instruccion repite26 como inicio
si no-junto-a-zumbador o frente-bloqueado entonces inicio
    media-vuelta;
    fin;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    si frente-libre entonces inicio
    avanza;
    gira-izquierda;
    avanza;
    recoge2;
    fin
    sino inicio
    si frente-bloqueado entonces inicio
    media-vuelta;
    mientras  frente-libre hacer
    avanza;
    si frente-bloqueado entonces
    media-vuelta;
    avanza;
    mientras algun-zumbador-en-la-mochila hacer
    deja-zumbador;
    apagate;
     fin;
     inicio
    si no-junto-a-zumbador  entonces
    media-vuelta;
    mientras frente-libre hacer
    avanza;
    gira-derecha;
    mientras frente-libre hacer
    avanza;
    media-vuelta;
    avanza;
    mientras algun-zumbador-en-la-mochila hacer
    deja-zumbador;
    apagate;
    fin;
    fin;
    fin;
define-nueva-instruccion repite como inicio
si no-junto-a-zumbador o frente-bloqueado entonces
    media-vuelta;
    mientras frente-libre hacer
    avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
    avanza;
    si junto-a-zumbador entonces inicio
    recoge;
    fin sino  inicio
    si no-junto-a-zumbador entonces
    media-vuelta;
    mientras frente-libre hacer
    avanza;
    gira-derecha;
    mientras frente-libre hacer
    avanza;
    mientras algun-zumbador-en-la-mochila hacer
    deja-zumbador;
    gira-derecha;
    avanza;
     recoge2;
    fin;
    fin;
define-nueva-instruccion recoge como
si junto-a-zumbador entonces inicio
coge-zumbador;
si no-junto-a-zumbador y frente-libre entonces inicio
avanza;
recoge;
repite;
fin
sino inicio
si junto-a-zumbador entonces inicio
deja-zumbador;
si frente-libre entonces
avanza;
 recoge;
repite;
fin;
fin;
fin;

    inicia-ejecucion
    avanza;
    recoge;
        apagate;
    termina-ejecucion
finalizar-programa
