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(); }
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(); }