iniciar-programa
define-nueva-instruccion gato(a) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
gato(sucede(a));
si no junto-a-zumbador entonces inicio
repetir a veces deja-zumbador;
avanza;
repetir 3 veces gira-izquierda;
fin;
mientras no junto-a-zumbador hacer inicio
 repetir 2 veces deja-zumbador;
repetir a veces inicio
avanza;
si izquierda-libre entonces gira-izquierda;
fin;
fin;
fin;
fin;

define-nueva-instruccion g como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;

avanza;
si izquierda-libre entonces gira-izquierda;
g;
mientras no orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
repetir 3 veces gira-izquierda;
mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;
repetir 2 veces avanza;
deja-zumbador;
repetir 2 veces gira-izquierda;
mientras frente-libre hacer avanza;
fin sino inicio

avanza;
si izquierda-libre entonces gira-izquierda;
g;
mientras no orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
repetir 3 veces gira-izquierda;
mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;
repetir 3 veces avanza;
deja-zumbador;
repetir 2 veces gira-izquierda;
mientras frente-libre hacer avanza;
fin;
fin;
fin;


    inicia-ejecucion
    repetir 3 veces gira-izquierda;
    avanza;
    gira-izquierda;
    gato(1);
    repetir 2 veces coge-zumbador;
    mientras no junto-a-zumbador hacer inicio
    deja-zumbador;
    avanza;
    si izquierda-libre entonces gira-izquierda;
    si junto-a-zumbador entonces inicio
    avanza;
    si junto-a-zumbador entonces inicio
    repetir 2 veces gira-izquierda;
     avanza;
    repetir 2 veces gira-izquierda;
    deja-zumbador;
    fin;
    fin;
    fin;
    g;
    repetir 2 veces gira-izquierda;
    avanza;
    coge-zumbador;
    si no junto-a-zumbador entonces inicio
    deja-zumbador;
    avanza;  
    deja-zumbador;
    avanza;
    mientras junto-a-zumbador hacer coge-zumbador;
    fin sino inicio
    deja-zumbador;
    fin;










        apagate;
    termina-ejecucion
finalizar-programa
