示例#1
0
        void TreatImun()//излечиться силами иммунитета
        {
            if (Ill.typePass != 1)
            {
                int tmp = GetProb(this.immun + this.dopimmun, this.ill.strong);
                if (tmp > 0)
                {
                    dopimmun   += 5;
                    this.isSick = false;
                    this.ill    = null;
                }

                if (tmp == 0)
                {
                    Random r    = new Random();
                    int    rand = r.Next(0, 2);
                    if (rand == 0)
                    {
                        dopimmun   += 5;
                        this.isSick = false;
                        this.ill    = null;
                    }
                }
            }
        }
示例#2
0
        //Данная функция предназначена для передачи болезни от одной особи к другой.
        //Для этого функция создает копию материнской болезни, а затем мутирует ее. Функция возвращает итоговый вариант болезни
        //Функция вызывается следующим способом: Особь2.ILL = Особь1.ILL.GetIll()
        public Ill GetIll()//передать болезнь другой особи, при передае болезнь мутирует
        {
            Ill newIll = new Ill();

            newIll.deadly       = this.deadly;
            newIll.contagation  = this.contagation;
            newIll.strong       = this.strong;
            newIll.passDict     = this.passDict;
            newIll.MutateChanse = this.MutateChanse;
            newIll.Mutate();

            return(newIll);
        }
示例#3
0
        public void TryBeginSick(Ill ill)//заразить особь
        {
            int tmp = GetProb(ill.contagation, this.immun);

            if (tmp > 0)
            {
                this.isSick = true;
                this.ill    = ill.GetIll();
                Life.LI.Add(this.ill);
            }

            if (tmp == 0)
            {
                Random r    = new Random();
                int    rand = r.Next(0, 2);
                if (rand == 0)
                {
                    this.isSick = true;
                    this.ill    = ill.GetIll();
                    Life.LI.Add(this.ill);
                }
            }
        }
示例#4
0
        public void TreatDrugs()//излечить особь лекарством
        {
            int tmp = GetProb(Drugs.strong, this.ill.strong);

            if (tmp > 0)
            {
                dopimmun   += 5;
                this.isSick = false;
                this.ill    = null;
            }

            if (tmp == 0)
            {
                Random r    = new Random();
                int    rand = r.Next(0, 2);
                if (rand == 0)
                {
                    dopimmun   += 5;
                    this.isSick = false;
                    this.ill    = null;
                }
            }
        }
示例#5
0
文件: War.cs 项目: literale/war
        public void GenereteIll()                         //Генерируем болезни
        {
            int deadly   = tbDead.Value;                  //смертоносность
            int spDeadly = Convert.ToInt32(tbd.Text);     //разброс смртоносности
            int muteC    = tbMuteChanseIll.Value;         //мутация при передаче
            int spMuteC  = Convert.ToInt32(tbmci.Text);   //разброс мутации
            int con      = tbCon.Value;                   //заразность
            int spCon    = Convert.ToInt32(tbc.Text);     //разброс заразности
            int strong   = tbStrong.Value;                //сила
            int spStrong = Convert.ToInt32(tbs.Text);     //разброс силы
            int nIll     = Convert.ToInt32(tbIllSp.Text); //кол-во зараженных
            int passD    = tbDistInfect.Value;            //расстояние передачи
            int spPassD  = Convert.ToInt32(tbpd.Text);    //разброс расстояния

            int nSP = Convert.ToInt32(tbSize.Text);       //если пользователь хочет заразить больше особей, чем есть  - заражаем всех

            if (nIll > nSP)
            {
                nIll = nSP;
            }

            for (int i = 0; i < nIll; i++)
            {
                Random r       = new Random();
                int    ndeadly = deadly + r.Next(-spDeadly, spDeadly + 1);
                if (ndeadly < 0)
                {
                    ndeadly = 0;
                }
                int nMuteC = muteC + r.Next(-spMuteC, spMuteC + 1);
                if (nMuteC < 1)
                {
                    nMuteC = 1;
                }
                int ncon = con + r.Next(-spCon, spCon + 1);
                if (ncon < 1)
                {
                    ncon = 1;
                }
                int nstrong = strong + r.Next(-spStrong, spStrong + 1);
                if (nstrong < 1)
                {
                    nstrong = 1;
                }
                int nPassDist = passD + r.Next(-spPassD, spPassD + 1);
                if (nPassDist < 1)
                {
                    nPassDist = 1;
                }

                Ill newIll = new Ill();
                newIll.deadly       = ndeadly;
                newIll.MutateChanse = nMuteC;
                newIll.contagation  = ncon;
                newIll.strong       = nstrong;
                newIll.passDict     = nPassDist;
                Life.LI.Add(newIll);
                Life.LS[i].ill    = newIll;
                Life.LS[i].isSick = true;
                Random r1 = new Random();
                int    t  = r1.Next(1, 50);
                System.Threading.Thread.Sleep(t);//чтобы генератор успел змениться
            }
        }