Exemple #1
0
        private void GiveBirthToAChild(int indexOfParent, ElementType et)
        {
            var adjacentSpots = GetAdjacentSpots(indexOfParent);
            var sands         = adjacentSpots.Where(x => Items[x].ElementType == ElementType.Sand).ToList();

            if (sands.Count == 0)
            {
                return;
            }
            Application.Current.Dispatcher.Invoke((Action) delegate
            {
                var randomIndex = sands[_rnd.Next(0, sands.Count)];
                switch (et)
                {
                case ElementType.Coyote:
                    Items[randomIndex] = new Coyote();
                    _coyoteIndexes.Add(randomIndex);
                    break;

                case ElementType.PocketMouse:
                    Items[randomIndex] = new PocketMouse();
                    _miceIndexes.Add(randomIndex);
                    break;
                }
            });
        }
Exemple #2
0
        private void SetPlayers()
        {
            var mice    = PlayerSettings.CountOnDesertPocket;
            var coyotes = PlayerSettings.CountOnDesertCoyot;

            int index;

            for (int i = 0; i < mice; i++)
            {
                index = _rnd.Next(0, Rows * Columns);
                while (Items[index].Color != "peru" || Items[index].Name != "")
                {
                    index = _rnd.Next(0, Rows * Columns);
                }
                _miceIndexes.Add(index);
                Items[index] = new PocketMouse();
            }
            for (int i = 0; i < coyotes; i++)
            {
                index = _rnd.Next(0, Rows * Columns);
                while (Items[index].Color != "peru" || Items[index].Name != "")
                {
                    index = _rnd.Next(0, Rows * Columns);
                }
                _coyoteIndexes.Add(index);
                Items[index] = new Coyote();
            }
        }