Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Primer Tutorial De Ia / First Ai Tutorial

Iniciado por Vicente, 03 de Marzo de 2006, 04:17:11 PM

« anterior - próximo »

zupervaca

 Un codigo de ejemplo de lo que digo:

       class IChromosome<T> : IComparable<IChromosome<T>>
       {
           public int CompareTo( IChromosome<T> y )
           {
               return this.Finess.CompareTo(y.Finess);
           }
           public double Finess = 0.0;
       }

       class IChromosomeMinimize<T> : IComparer<IChromosome<T>>
       {
           public int Compare(IChromosome<T> obj1, IChromosome<T> obj2)
           {
               return obj2.CompareTo(obj1);
           }
       }

       class IChromosomeMaximize<T> : IComparer<IChromosome<T>>
       {
           public int Compare(IChromosome<T> obj1, IChromosome<T> obj2)
           {
               return obj1.CompareTo(obj2);
           }
       }

Haciendo esto estarias programando con la filosofia de estos interfaces, es decir, la clase cromosoma solo sabe cuando un cromosoma es mayor, menor o igual mediante la funcion CompareTo, despues las clases IChromosomeMinimize y IChromosomeMaximize son las que indican el sistema de ordenacion para por ejemplo la funcion sort que indicas que quieres usar.

Editado: Se me olvidaba, IChromosomeMaximize seria lo mismo que usar Comparer.DefaultInvariant.Compare(obj1, obj2) y IChromosomeMinimize seria lo mismo que usar Comparer.DefaultInvariant.Compare(obj2, obj1)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.