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 skina como
    inicio
        sur;
        mientras frente-libre hacer avanza;
        oeste;
        mientras frente-libre hacer avanza;
        norte;
    fin;

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

    define-nueva-instruccion expancion 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
               inicio
                   deja-zumbador;
                   repetir 4 veces
                   inicio
                       si frente-libre entonces
                       inicio
                           avanza;
                           si no-junto-a-zumbador entonces deja-zumbador;
                           repetir 2 veces gira-izquierda;
                           avanza;
                           gira-izquierda;
                       fin sino repetir 3 veces gira-izquierda;
                   fin;
                   si frente-libre entonces avanza
                   sino bloki;
                fin sino
                inicio
                    deja-zumbador;
                    si frente-libre entonces avanza
                    sino bloki;
                fin;
            fin sino si frente-bloqueado entonces bloki;

        fin;
        skina;
    fin;

    define-nueva-instruccion virus 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 no-junto-a-zumbador entonces
            inicio
                repetir 2 veces deja-zumbador;
                si frente-libre entonces avanza
                sino bloki;
            fin;
        fin sino si frente-bloqueado entonces bloki;
      fin;
      skina;
   fin;


    define-nueva-instruccion dias como
    inicio
        si junto-a-zumbador entonces
        inicio
            coge-zumbador;
            dias;          
            expancion;
            virus;
        fin sino
        virus;

    fin;

    define-nueva-instruccion vacunas como
    inicio
     mientras no-junto-a-zumbador y orientado-al-norte hacer
      inicio
       mientras no-junto-a-zumbador y frente-libre hacer avanza;
       si frente-bloqueado y no-junto-a-zumbador y orientado-al-norte entonces bloki;
      fin;
        si junto-a-zumbador y orientado-al-norte entonces
        inicio
            coge-zumbador;
            si frente-libre entonces avanza
            sino bloki;
            vacunas;
            deja-zumbador;
           fin sino
           inicio
              skina;
              mientras junto-a-zumbador hacer coge-zumbador;
            fin;
    fin;



    inicia-ejecucion
        dias;
        vacunas;
        apagate;
    termina-ejecucion
finalizar-programa
