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)