iniciar-programa
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 contamina como
inicio
deja-zumbador;
si orientado-al-norte y frente-libre entonces
  inicio
    avanza;
    si no-junto-a-zumbador entonces deja-zumbador;
    sur;
    avanza;
    norte;
  fin;
oeste;
si orientado-al-oeste y frente-libre entonces
  inicio
    avanza;
    si no-junto-a-zumbador entonces deja-zumbador;
    este;
    avanza;
    oeste;
  fin;
sur;
si orientado-al-sur y frente-libre entonces
  inicio
    avanza;
    si no-junto-a-zumbador entonces deja-zumbador;
    norte;
    avanza;
    sur;
  fin;
este;
si orientado-al-este y frente-libre entonces
  inicio
    avanza;
    si no-junto-a-zumbador entonces deja-zumbador;
    oeste;
    avanza;
    este;
  fin;
norte;
fin;

define-nueva-instruccion gira como
inicio
  sur;
  mientras frente-libre hacer avanza;
  este;
  si frente-bloqueado entonces sal-de-instruccion;
  si frente-libre entonces avanza;
  norte;
fin;

define-nueva-instruccion buscavirus como
inicio
mientras orientado-al-norte hacer
  inicio
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
    si junto-a-zumbador entonces
      inicio
       coge-zumbador;
       si junto-a-zumbador entonces deja-zumbador;
       si no-junto-a-zumbador entonces repetir 2 veces deja-zumbador;
      fin;
   si frente-bloqueado entonces
     inicio
     gira;
     si orientado-al-este y frente-bloqueado entonces
       inicio
         oeste;
         mientras frente-libre hacer avanza;
         norte;
          sal-de-instruccion;
       fin;
     fin
   sino  avanza;
  fin;
fin;

define-nueva-instruccion influenza como
inicio
mientras orientado-al-norte hacer
  inicio
    mientras no-junto-a-zumbador y frente-libre hacer avanza;
    si junto-a-zumbador entonces
      inicio
        coge-zumbador;
        si junto-a-zumbador entonces contamina
        sino
          inicio
            deja-zumbador;
          fin;
      fin;
    si frente-bloqueado entonces
      inicio
        gira;
        si orientado-al-este entonces
          inicio
            oeste;
            mientras frente-libre hacer avanza;
            norte;
            sal-de-instruccion;
          fin;
      fin
   sino avanza;
  fin;
fin;

define-nueva-instruccion ah1n1 como
inicio
si junto-a-zumbador y orientado-al-sur entonces
  inicio
    coge-zumbador;
    si no-junto-a-zumbador entonces norte;
    ah1n1;
    buscavirus;
    influenza;
  fin;

fin;

define-nueva-instruccion cuentavacunas como
inicio
  mientras orientado-al-norte hacer
  inicio
  mientras no-junto-a-zumbador y frente-libre hacer avanza;
    si frente-bloqueado y no-junto-a-zumbador entonces
      inicio
        gira;
        si orientado-al-este entonces
          inicio
           oeste;
           mientras frente-libre hacer avanza;
           mientras junto-a-zumbador hacer coge-zumbador;
          fin;
      fin;
    si junto-a-zumbador entonces
      inicio
        si junto-a-zumbador entonces
          inicio
             coge-zumbador;
             si frente-bloqueado entonces
               inicio
                 gira;
                 si orientado-al-este entonces
                   inicio
                     oeste;
                     mientras frente-libre hacer avanza;
                     mientras junto-a-zumbador hacer coge-zumbador;
                   fin;
               fin
              sino avanza;
             cuentavacunas;
             si orientado-al-oeste y frente-bloqueado entonces deja-zumbador;
          fin;
       fin;
  fin;
fin;
    inicia-ejecucion
    sur;
    ah1n1;
    buscavirus;
    cuentavacunas;
        apagate;
    termina-ejecucion
finalizar-programa
