iniciar-programa
define-nueva-instruccion gira(n) como
inicio
repetir n veces gira-izquierda;
fin;
define-nueva-instruccion mina como
inicio
repetir 4 veces
inicio
si frente-libre entonces
inicio
avanza;
deja-zumbador;
gira(2);
avanza;
gira(1);
fin
sino
gira(3);
fin;
repetir 4 veces
inicio
si frente-libre y izquierda-libre entonces
inicio
avanza;
gira(1);
avanza;
deja-zumbador;
gira(2);
avanza;
gira(3);
avanza;
gira(1);
fin
sino
gira(3);
fin;

fin;
define-nueva-instruccion revisa(n) como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
revisa(sucede(n));
fin
sino
inicio
repetir n veces
deja-zumbador;
repetir 8 veces
si junto-a-zumbador entonces
coge-zumbador;
si junto-a-zumbador entonces
inicio
mientras junto-a-zumbador hacer coge-zumbador;
repetir 9 veces deja-zumbador;
mina;
fin
sino
inicio
repetir n veces deja-zumbador;
fin;
fin;
fin;
define-nueva-instruccion busca como
inicio
si frente-libre  entonces
inicio
avanzA;
fin;
si junto-a-zumbador entonces
revisa(0);
si frente-bloqueado y orientado-al-norte entonces
inicio
gira(3);
si frente-bloqueado entonces apagate;
avanza;
si junto-a-zumbador entonces revisa(0);
gira(3);
fin;
si frente-bloqueado y orientado-al-sur  entonces
inicio
gira(1);

si frente-bloqueado entonces apagate;
avanza;
si junto-a-zumbador entonces
revisa(0);
gira(1);
fin;
busca;
fin;



inicia-ejecucion
mientras no-orientado-al-sur hacer gira(1);
mientras frente-libre hacer avanza;
gira(3);
mientras frente-libre hacer avanza;
gira(3);
si junto-a-zumbador entonces revisa(0);
   busca;
        apagate;
    termina-ejecucion
finalizar-programa
