예제 #1
0
        internal God()
        {
            Func <Gender, Human> makeStudent = (gender) =>
                                               new Student(NamesHelper.RandomName(gender), RandomStudentAge(), gender, NamesHelper.RandomPatronimyc(gender));

            Func <Gender, Human> makeBotan = (gender) =>
                                             new Botan(NamesHelper.RandomName(gender), RandomStudentAge(), gender, NamesHelper.RandomPatronimyc(gender), RandomAvg());

            maleCreators.Add(makeStudent);
            maleCreators.Add(makeBotan);

            maleCreators.Add((gender) =>
                             new Parent(NamesHelper.RandomName(gender), RandomParentAge(), gender, RandomChildren()));

            maleCreators.Add((gender) =>
                             new CoolParent(NamesHelper.RandomName(gender), RandomParentAge(), gender, RandomChildren(), RandomMoney()));

            femaleCreators.Add(makeStudent);
            femaleCreators.Add(makeBotan);
        }
예제 #2
0
        private Human CreatePairImpl(Human h)
        {
            if (h is Botan)
            {
                Botan botan = (Botan)h;
                return(new CoolParent(NamesHelper.GenerateParentName(botan),
                                      RandomParentAge(botan),
                                      Gender.Male, RandomChildren(),
                                      (decimal)Math.Pow(RandomMoneyBase, botan.Avg)));
            }
            if (h is Student)
            {
                Student student = (Student)h;
                return(new Parent(NamesHelper.GenerateParentName(student),
                                  RandomParentAge(student),
                                  Gender.Male, RandomChildren()));
            }
            if (h is CoolParent)
            {
                CoolParent coolParent = (CoolParent)h;
                Gender     g          = SelectGender();
                return(new Botan(NamesHelper.RandomName(g),
                                 RandomStudentAge(coolParent), g,
                                 NamesHelper.GeneratePatronimyc(coolParent.Name, g),
                                 Math.Log10((double)coolParent.Money)));
            }

            if (h is Parent)
            {
                Parent parent = (Parent)h;
                Gender g      = SelectGender();
                return(new Student(NamesHelper.RandomName(g),
                                   RandomStudentAge(parent), g,
                                   NamesHelper.GeneratePatronimyc(parent.Name, g)));
            }
            throw new ArgumentException("human");
        }