Example #1
0
        /// <summary>
        /// Muestra en consola lo que se debe mostrar entre turnos.
        /// </summary>
        public void MuestraStats()
        {
            Console.Clear();
            Console.ForegroundColor = ConsoleColor.White;
            float BuenoPct = GetPctBuenos();

            // Escribir máxima puntuación y mínima.
            //Console.ForegroundColor = Pool[0].Jug.clr;
            Console.WriteLine("Máxima: {0} - {1}\nSobrevivir: {2}", Individuos [0].Punt, Individuos [0].Indiv, MinSobrevivir);
            if (Individuos [0].Indiv.Genética.Esbueno())
            {
                Console.Write("  Bueno");
            }
            if (MostrarVengativo && Individuos [0].Indiv.Genética.EsVengativo(IteracionesPorEncuentro))
            {
                Console.Write("  Vengativo");
            }
            Console.WriteLine();
            Console.WriteLine("% buenos: " + BuenoPct);
            Console.WriteLine("% sexuales: " + (float)Individuos.FindAll(x => x.Indiv.Genética.ReplicaSexual).Count / Individuos.Count);
            Console.WriteLine();
            // Escribir el pool
            foreach (var x in Individuos)
            {
                //Console.ForegroundColor = x.Jug.clr;
                if (x.Indiv.Genética.Esbueno())
                {
                    Console.ForegroundColor = ConsoleColor.Blue;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.White;
                }
                Console.Write(string.Format("{0} ", x.Indiv.ToString()));
            }
            Console.WriteLine();
            Console.WriteLine("La Genepool:");
            ContadorGen Pool = CuentaGen();


            int MaxGen = 5;

            foreach (var x in Pool.OrderByDescending(x => x.Value))
            {
                MaxGen--;
                if (MaxGen >= 0)
                {
                    Console.ForegroundColor = x.Key.Esbueno() ? ConsoleColor.Blue : ConsoleColor.White;
                    Console.WriteLine(string.Format("{0}\t {1}", x.Key, x.Value));
                }
            }
        }
Example #2
0
        /// <summary>
        /// Devuelve la genpool con peso.
        /// </summary>
        /// <returns>The gen.</returns>
        public ContadorGen CuentaGen()
        {
            ContadorGen ret = new ContadorGen();

            foreach (var x in Individuos)
            {
                foreach (var y in x.Indiv.CuentaGen())
                {
                    ret [y.Key] += y.Value;
                }
            }
            return(ret);
        }
Example #3
0
        /// <summary>
        /// Crea un diccionario con la información cualitativa de sus subgenes.
        /// </summary>
        /// <returns>Un ContadorGen (listapeso) con la información de apariencias de cada subgen.</returns>
        /// <param name="Hereditario">Si es true, la búsqueda se hace recusrivamente.
        /// Si el false, lo hace sólo un paso.</param>
        public override ContadorGen CuentaGen(bool Hereditario = true)
        {
            ContadorGen ret = new ContadorGen();

            ret [this] += 1;
            foreach (var x in _Genes)
            {
                if (Hereditario)
                {
                    foreach (var y in x.CuentaGen(true))
                    {
                        ret [y.Key] += y.Value;
                    }
                }
                else
                {
                    ret [x] += 1;
                }
            }
            return(ret);
        }