예제 #1
0
        public Resources GenerateResources()
        {
            double hydrogen     = HelperRandomFunctions.GetRandomDouble() * 1E22;
            double commonMetals = HelperRandomFunctions.GetRandomDouble() * 1E24;
            double rareElements = HelperRandomFunctions.GetRandomDouble() * 1E20;

            return(new Resources(hydrogen, commonMetals, rareElements));
        }
예제 #2
0
파일: StarFactory.cs 프로젝트: vind113/4X
        /// <summary>
        ///     Сгенерировать звезду с заданым именем
        /// </summary>
        /// <param name="name">
        ///     Имя звезды
        /// </param>
        /// <returns>
        ///     Возвращает экземпляр класса <see cref="Star"/>
        /// </returns>
        public static Star GenerateStar(string name)
        {
            int             radius = 0;
            LuminosityClass luminosityClass;

            double starFraction = HelperRandomFunctions.GetRandomDouble();

            if (starFraction < 0.0003)
            {
                radius          = HelperRandomFunctions.GetRandomInt(4_620_000, 10_000_000);
                luminosityClass = LuminosityClass.O;
            }
            else if (starFraction < 0.0013)
            {
                radius          = HelperRandomFunctions.GetRandomInt(1_260_000, 4_620_000);
                luminosityClass = LuminosityClass.B;
            }
            else if (starFraction < 0.006)
            {
                radius          = HelperRandomFunctions.GetRandomInt(805_000, 1_260_000);
                luminosityClass = LuminosityClass.A;
            }
            else if (starFraction < 0.03)
            {
                radius          = HelperRandomFunctions.GetRandomInt(728_000, 805_000);
                luminosityClass = LuminosityClass.F;
            }
            //реальное соотношение 0.076
            else if (starFraction < 0.3)
            {
                radius          = HelperRandomFunctions.GetRandomInt(672_000, 728_000);
                luminosityClass = LuminosityClass.G;
            }
            //реальное соотношение 0.12
            else if (starFraction < 0.4)
            {
                radius          = HelperRandomFunctions.GetRandomInt(490_000, 672_000);
                luminosityClass = LuminosityClass.K;
            }
            else
            {
                radius          = HelperRandomFunctions.GetRandomInt(360_000, 490_000);
                luminosityClass = LuminosityClass.M;
            }

            return(new Star(name, radius, luminosityClass));
        }
예제 #3
0
 private static double GetRandomResourceMultiplier()
 {
     return(HelperRandomFunctions.GetRandomDouble() * 2);
 }