iniciar-programa
define-prototipo-instruccion coge(n);
define-nueva-instruccion gira(g) como repetir g veces gira-izquierda;
define-nueva-instruccion busca2 como inicio
si junto-a-zumbador entonces inicio
si frente-libre entonces inicio
avanza;
busca2;
gira(2); avanza; gira(2);
fin;
si izquierda-libre entonces inicio
gira-izquierda;
avanza;
busca2;
gira(2); avanza; gira-izquierda;
fin;
si derecha-bloqueada y junto-a-zumbador  entonces inicio
gira(2);
coge(0);
fin;
si derecha-libre entonces inicio
gira(3);
avanza;
busca2;
gira(2); avanza;gira(3);
gira(2);
coge(0);
fin;
fin;
fin;

define-nueva-instruccion busca(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
mientras junto-a-zumbador hacer coge-zumbador;
deja-zumbador;
busca(sucede(n));
si junto-a-zumbador y no orientado-al-sur entonces inicio
coge-zumbador;
fin;
fin
sino deja-zumbador;
si frente-libre y junto-a-zumbador entonces inicio
avanza;
busca(n);
gira(2); avanza; gira(2);
fin;
si izquierda-libre y junto-a-zumbador entonces inicio
gira-izquierda;
avanza;
busca(n);
gira(2); avanza; gira(1);
fin;
si( derecha-libre o derecha-bloqueada)y junto-a-zumbador entonces inicio
si frente-libre y derecha-bloqueada entonces inicio
avanza;
si no junto-a-zumbador entonces inicio
gira(2);
avanza;
coge-zumbador;
repetir n veces deja-zumbador;
busca2;
fin
sino inicio
gira(2);
avanza;
gira(2);
fin;
fin;
si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces inicio
gira(2);
repetir n veces deja-zumbador;
coge-zumbador;
busca2;
fin;
gira(3);
si frente-libre entonces avanza;
busca(n);
gira(2);  si frente-libre entonces avanza; gira(3);
coge-zumbador;
repetir n veces deja-zumbador;
gira(2); avanza;
busca2;
fin;
fin;
fin;
define-nueva-instruccion busca3(n) como inicio
si junto-a-zumbador entonces inicio
si frente-libre entonces inicio
avanza;
busca3(n);
gira(2);
avanza;
gira(2);
fin;
si izquierda-libre entonces inicio
gira-izquierda;
avanza;
busca3(n);
gira(2);
avanza;
gira(1);
fin;

si derecha-libre o derecha-bloqueada entonces inicio
si frente-libre y derecha-bloqueada entonces inicio
avanza;
si no junto-a-zumbador entonces inicio
gira(2);
avanza;
gira(2);
repetir n veces si junto-a-zumbador entonces coge-zumbador;
si no junto-a-zumbador entonces inicio
mientras no orientado-al-este hacer gira-izquierda;
avanza;
repetir 5 veces deja-zumbador;
fin;
apagate;
fin
sino inicio
gira(2);
avanza;
gira(2);
fin;
fin;
si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces inicio
repetir n veces inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
mientras no orientado-al-este hacer gira-izquierda;
avanza;
si junto-a-zumbador entonces coge-zumbador;
repetir 5 veces deja-zumbador;
apagate;
fin;
fin;
fin;
gira(3);
avanza;
busca3(n);
gira(2);
avanza;
gira(3);
repetir n veces inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
mientras no orientado-al-este hacer gira-izquierda;
avanza;
si junto-a-zumbador entonces coge-zumbador;
repetir 5 veces deja-zumbador;
apagate;
fin;
fin;
si no junto-a-zumbador entonces inicio
mientras no orientado-al-este hacer gira-izquierda;
avanza;
repetir 5 veces deja-zumbador;
fin;
apagate;
fin;
fin;
fin;
define-nueva-instruccion coge(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
coge(sucede(n));
fin
sino inicio
avanza;
busca3(n);
fin;
fin;

    inicia-ejecucion
    avanza;
    busca(0);
            apagate;
    termina-ejecucion
finalizar-programa

