示例#1
0
        public Game(int width, int height, int moleCount, int plantCount, Form form, Action update)
        {
            _field = new GameCell[width, height];
            for (var i = 0; i < width; i++)
            {
                for (var j = 0; j < height; j++)
                {
                    _field[i, j] = new GameCell();
                }
            }

            var rnd = new Random();

            for (var i = 0; i < plantCount; i++) // определяю местоположение растения
            {
                var wp = rnd.Next(0, width);
                var hp = rnd.Next(0, height);
                if (_field[wp, hp].P == null) // если на этом месте нет растения, то сажаю новое
                {
                    _field[wp, hp].P = new Plant(i + 1);
                }
                else
                {
                    i--;  // иначе заставляю снова пройти эту итерацию цикла
                }
            }

            _moleId = 1;
            for (var i = 0; i < moleCount; i++) // аналогично для крота
            {
                var wm = rnd.Next(0, width);
                var hm = rnd.Next(0, height);
                _field[wm, hm].M.Add(new Mole((Gender)rnd.Next(0, 2), GlobalVars.DefaultSpeed, wm, hm, _moleId++));
            }

            var wc = rnd.Next(0, width); // и для дачника
            var hc = rnd.Next(0, height);

            _field[wc, hc].C = new Cottager(GlobalVars.DefaultSpeed, wc, hc);

            var thread = new Thread(GameProcess);

            _form   = form;
            _update = update;
            thread.Start();
        }
示例#2
0
        public Game(int width, int height, int moleCount, int plantCount, Form form, Action update)
        {
            _field = new GameCell[width, height];
            for (var i = 0; i < width; i++)
            {
                for (var j = 0; j < height; j++)
                {
                    _field[i, j] = new GameCell();
                }
            }

            var rnd = new Random();

            for (var i = 0; i < plantCount; i++) // define the plant place
            {
                var wp = rnd.Next(0, width);
                var hp = rnd.Next(0, height);
                if (_field[wp, hp].P == null)
                {
                    _field[wp, hp].P = new Plant(i + 1);
                }
                else
                {
                    i--;
                }
            }

            _moleId = 1;
            for (var i = 0; i < moleCount; i++) // define the mole place
            {
                var wm = rnd.Next(0, width);
                var hm = rnd.Next(0, height);
                _field[wm, hm].M.Add(new Mole((Gender)rnd.Next(0, 2), GlobalVars.DefaultSpeed, wm, hm, _moleId++));
            }

            var wc = rnd.Next(0, width); // define the cottager place
            var hc = rnd.Next(0, height);

            _field[wc, hc].C = new Cottager(GlobalVars.DefaultSpeed, wc, hc);

            var thread = new Thread(GameProcess);

            _form   = form;
            _update = update;
            thread.Start();
        }