iniciar-programa
define-nueva-instruccion gato como inicio
si frente-libre o izquierda-libre entonces inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si frente-libre entonces inicio
avanza;
fin sino inicio
gira-izquierda;
si frente-libre entonces inicio
avanza;
gira-izquierda;
mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;
repetir 2 veces avanza;
fin;
fin;
gato;
mientras no orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
deja-zumbador;
fin;


si no junto-a-zumbador entonces inicio
si frente-libre entonces inicio
avanza;
gato;
fin sino inicio
gira-izquierda;
si frente-libre entonces inicio
avanza;
gira-izquierda;
mientras frente-libre hacer avanza;
repetir 2 veces gira-izquierda;
repetir 2 veces avanza;
gato;
fin;

fin;
fin;
fin;
fin;

define-nueva-instruccion g(a) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
g(sucede(a));
si frente-libre entonces inicio
mientras no-orientado-al-norte hacer gira-izquierda;
avanza;
si no junto-a-zumbador entonces inicio
repetir a veces deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
fin sino inicio
repetir 3 veces gira-izquierda;
avanza;
repetir 3 veces gira-izquierda;
avanza;
gira-izquierda;
mientras junto-a-zumbador y frente-libre hacer avanza;
repetir a veces deja-zumbador;
mientras no-orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
fin;
fin;
fin;
fin;
define-nueva-instruccion gg como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
gg;
mientras no orientado-al-sur hacer gira-izquierda;
mientras frente-libre hacer avanza;
mientras no orientado-al-este hacer gira-izquierda;
deja-zumbador;
si frente-libre entonces avanza;
fin;
fin;




    inicia-ejecucion
    mientras no orientado-al-este hacer gira-izquierda;
    mientras frente-libre  hacer inicio
    mientras no orientado-al-oeste hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    repetir 3 veces gira-izquierda;
    repetir 2 veces avanza;
    repetir 3 veces gira-izquierda;
     mientras frente-libre hacer avanza;
     gira-izquierda;
     gato;
     gira-izquierda;
     g(1);
     gira-izquierda;
     fin;
     repetir 2 veces gira-izquierda;
     mientras frente-libre hacer avanza;
     repetir 3 veces gira-izquierda;
     avanza;
     mientras junto-a-zumbador hacer inicio
      repetir 2 veces gira-izquierda;
      coge-zumbador;
      avanza;
      deja-zumbador;
       repetir 2 veces gira-izquierda;
       avanza;
       fin;
       mientras frente-libre hacer avanza;
       gg;



        apagate;
    termina-ejecucion
finalizar-programa
