Exemple #1
0
        public static double PointValue(this EnemyTypes enemyType, SerializableChromosome chromosome)
        {
            if (!HasCalculatedMinimums)
            {
                CalculateMinimums();
            }

            var enemyAttributes = BaseEnemy.GetGeneticAttributes(enemyType.Attributes(), chromosome);

            var healthPoints = enemyAttributes.MaximumHealth / minHealth;
            var speedPoints  = enemyAttributes.EffectiveSpeed / minSpeed;
            var flyingPoints = enemyAttributes.IsFlying ? 1.5 : 1;

            var piercePoints   = enemyAttributes.EffectivePiercingResist - minPierce;
            var bombardPoints  = enemyAttributes.EffectiveBombardResist - minBombard;
            var chemicalPoints = enemyAttributes.EffectiveChemicalResist - minChemical;
            var frostPoints    = enemyAttributes.EffectiveFrostResist - minFrost;
            var firePoints     = enemyAttributes.EffectiveFireResist - minFire;
            var electricPoints = enemyAttributes.EffectiveElectricResist - minElectric;

            var resistPoints = piercePoints + bombardPoints + chemicalPoints + frostPoints + firePoints +
                               electricPoints;

            var survivalPoints = healthPoints * resistPoints;
            var movePoints     = speedPoints * flyingPoints;

            var pointValue = survivalPoints * movePoints;

            return(pointValue);
        }
        public static double Evaluate(List <double> inputList, EnemyTypes enemyType, SerializableChromosome chromosome)
        {
            var enemyAttributes     = enemyType.Attributes();
            var effectiveAttributes = BaseEnemy.GetGeneticAttributes(enemyAttributes, chromosome);
            var attributesAsInput   = Enumerable.ToArray(EnemyAttributesToInput(effectiveAttributes));

            for (var i = 0; i < MaxEnemies; i++)
            {
                inputList.AddRange(attributesAsInput);
            }

            var score = _machineLearningModel.Predict(inputList.ToArray());

            return(score);
        }
Exemple #3
0
        public static double PointValue(this EnemyTypes enemyType)
        {
            if (PointValues.ContainsKey(enemyType))
            {
                return(PointValues[enemyType]);
            }
            if (!HasCalculatedMinimums)
            {
                CalculateMinimums();
            }

            var enemyAttributes = enemyType.Attributes();

            var healthPoints = enemyAttributes.Health / minHealth;
            var speedPoints  = enemyAttributes.Speed / minSpeed;
            var flyingPoints = enemyAttributes.IsFlying ? 1.5 : 1;



            var piercePoints   = enemyAttributes.PiercingResist - minPierce;
            var bombardPoints  = enemyAttributes.BombardResist - minBombard;
            var chemicalPoints = enemyAttributes.ChemicalResist - minChemical;
            var frostPoints    = enemyAttributes.FrostResist - minFrost;
            var firePoints     = enemyAttributes.FireResist - minFire;
            var electricPoints = enemyAttributes.ElectricResist - minElectric;

            var resistPoints = piercePoints + bombardPoints + chemicalPoints + frostPoints + firePoints +
                               electricPoints;

            var survivalPoints = healthPoints * resistPoints;
            var movePoints     = speedPoints * flyingPoints;

            var pointValue = survivalPoints * movePoints;

            PointValues.Add(enemyType, pointValue);

            return(pointValue);
        }