iniciar-programa

  define-nueva-instruccion norte como inicio
       mientras no-orientado-al-norte hacer inicio
           gira-izquierda;
       fin;
  fin;

 define-nueva-instruccion este como inicio
       mientras no-orientado-al-este hacer inicio
           gira-izquierda;
       fin;
  fin;

  define-nueva-instruccion sur como inicio
       mientras no-orientado-al-sur hacer inicio
           gira-izquierda;
       fin;
  fin;

 define-nueva-instruccion oeste como inicio
       mientras no-orientado-al-oeste hacer inicio
           gira-izquierda;
       fin;
  fin;

 define-nueva-instruccion ir_11 como inicio
    sur;
    mientras frente-libre hacer inicio
       avanza;
    fin;
    oeste;
    mientras frente-libre hacer inicio
       avanza;
    fin;
    este;
 fin;

  define-nueva-instruccion colorea como inicio
     si no-junto-a-zumbador entonces inicio
         deja-zumbador;

         norte;
         si frente-libre entonces  inicio
            avanza;
            colorea;
            sur;
            avanza;
         fin;

         este;
         si frente-libre entonces inicio
            avanza;
            colorea;
            oeste;
            avanza;
         fin;

         sur;
         si frente-libre entonces  inicio
            avanza;
            colorea;
            norte;
            avanza;
         fin;

         oeste;
         si frente-libre entonces  inicio
            avanza;
            colorea;
            este;
            avanza;
         fin;
     fin;


    fin;

    define-nueva-instruccion camina como inicio
      si frente-libre entonces inicio
        avanza;
      fin sino inicio
        si orientado-al-este entonces inicio
          norte;
          si frente-libre entonces inicio
             avanza;
             oeste;
          fin;
        fin sino inicio
          norte;
          si frente-libre entonces inicio
             avanza;
             este;
          fin;
        fin;
      fin;


    fin;


define-nueva-instruccion izq como inicio
   si frente-libre entonces inicio
      avanza;
      izq;
      avanza;
   fin sino inicio
      deja-zumbador;
      este;
   fin;
fin;


define-nueva-instruccion baja como inicio
   si frente-libre entonces inicio
      avanza;
      baja;
      avanza;
   fin sino inicio
      oeste;             
      izq;
      norte;
   fin;

fin;

inicia-ejecucion
         ir_11;
         colorea;
         mientras no-orientado-al-norte hacer inicio
           camina;
           si no-junto-a-zumbador entonces inicio
              sur;
              baja;                                             
              colorea;
              ir_11;
           fin;
         fin;
         ir_11;
         coge-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa

