iniciar-programa

define-nueva-instruccion come como mientras junto-a-zumbador hacer coge-zumbador;
define-nueva-instruccion norte como mientras no-orientado-al-norte hacer gira-izquierda;
define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
define-nueva-instruccion este como mientras no-orientado-al-este hacer gira-izquierda;
define-nueva-instruccion oeste como mientras no-orientado-al-oeste hacer gira-izquierda;
define-nueva-instruccion media-vuelta como repetir 2 veces gira-izquierda;
define-nueva-instruccion choca como mientras frente-libre hacer avanza;



define-nueva-instruccion ir11-norte como inicio
    sur; choca; oeste; choca; norte;
fin;

define-nueva-instruccion pon-otro como inicio
    mientras derecha-libre hacer inicio
        si junto-a-zumbador entonces inicio
            deja-zumbador;
        fin;
        si frente-libre entonces inicio
            avanza;
        fin sino inicio
            este; avanza; sur;
            choca; norte;
        fin;
    fin;
    mientras frente-libre hacer inicio
        si junto-a-zumbador entonces deja-zumbador;
        avanza;
    fin;
    si junto-a-zumbador entonces deja-zumbador;
fin;


define-nueva-instruccion decora como inicio
    si frente-libre entonces inicio
        avanza;
        si no-junto-a-zumbador entonces deja-zumbador;
        sur; avanza;
        media-vuelta;
    fin;
    oeste;
    si frente-libre entonces inicio
        avanza;
        si no-junto-a-zumbador entonces deja-zumbador;
        media-vuelta; avanza;
   fin;
   sur;
   si frente-libre entonces inicio
       avanza;
        si no-junto-a-zumbador entonces deja-zumbador;
       media-vuelta; avanza;
   fin;
   este;
   si frente-libre entonces inicio
       avanza;
        si no-junto-a-zumbador entonces deja-zumbador;
       media-vuelta; avanza;
   fin;
   norte;
fin;


define-nueva-instruccion expande como inicio
    mientras derecha-libre hacer inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            si junto-a-zumbador entonces inicio
                decora;
            fin sino inicio
                deja-zumbador;
            fin;
         fin;
         si frente-libre entonces inicio
             avanza;
         fin sino inicio
             este; avanza;
             sur; choca;
             norte;
         fin;
    fin;
    mientras frente-libre hacer inicio
        si junto-a-zumbador entonces inicio
            coge-zumbador;
            si junto-a-zumbador entonces inicio
                decora;
            fin sino inicio
                deja-zumbador;
            fin;
         fin;
         avanza;
    fin;
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        si junto-a-zumbador entonces inicio
           decora;
        fin sino inicio
            deja-zumbador;
        fin;
    fin;
fin;


define-nueva-instruccion infectados como inicio
    ir11-norte;
    pon-otro;
    ir11-norte;
    expande;
fin;

define-nueva-instruccion influenza como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        influenza;
        infectados;
     fin;
fin;

define-nueva-instruccion respuesta como inicio
    si frente-libre entonces inicio
        si junto-a-zumbador entonces inicio
            avanza;
            respuesta;
            deja-zumbador;
        fin sino inicio
            avanza;
            respuesta;
        fin;
    fin sino inicio
       si junto-a-zumbador entonces inicio
           este;
           si frente-libre entonces inicio
               avanza; sur;
               choca; norte;
               respuesta;
               deja-zumbador;
          fin sino inicio
              ir11-norte;
              come;
              deja-zumbador;
          fin;
        fin sino inicio
            este;
            si frente-libre entonces inicio
                avanza; sur; choca;
                norte;
                respuesta;
            fin sino inicio
                ir11-norte;
                come;
            fin;
        fin;
    fin;
fin;


    inicia-ejecucion
        influenza;
        ir11-norte;
        respuesta;
        apagate;
    termina-ejecucion
finalizar-programa
