Exemplo n.º 1
0
        /// <summary>
        /// Выполнить полет.
        /// </summary>
        /// <param name="energy">Используемый для полета источник энергии.</param>
        /// <returns>Расстояние, на которое выполнился перелет.</returns>
        public virtual int Move(EnergyBase energy)
        {
            if (energy == null)
            {
                throw new ArgumentNullException(nameof(energy));
            }

            energy.Using(UsingEnergy);
            return(1);
        }
Exemplo n.º 2
0
        public override int Move(EnergyBase energy)
        {
            if (energy == null)
            {
                throw new ArgumentNullException(nameof(energy));
            }

            // Очень нестабильный, но потенциально быстрый двигатель.

            // Потребляет случайное количество энергии.
            int factorEnergy = _random.Next(0, _maxFactor);

            energy.Using(UsingEnergy * factorEnergy);

            // Движется со случайной скоростью или вообще останавливается.
            int factorSpeed = _random.Next(0, _maxFactor);

            return(UsingEnergy * factorSpeed);
        }