Пример #1
0
 public Base(int i, int j, TypesOfObject obj, Map map) : base(i, j, obj)
 {
     TypeOfObject = obj;
     Color        = TypeOfObject == TypesOfObject.BaseBlack ? Colors.Black : Colors.White;
     Scope        = new IItem[7, 7];
     Map          = map;
 }
Пример #2
0
 public void UpdateUnits(TypesOfObject unit, Statistics stats)
 {
     foreach (var unitToUpdate in MapManager.Map.Army)
     {
         if (unitToUpdate.TypeOfObject == unit)
         {
             var xNew = unitToUpdate.X;
             var yNew = unitToUpdate.Y;
             _rules.GetNewPositionAccordingToDirection(ref yNew, ref xNew, unitToUpdate);
             if (!_rules.ShouldUnitsBeUpdated(MapManager.Map.GetItem(yNew, xNew)))
             {
                 continue;
             }
             if (MapManager.Map.GetItem(yNew, xNew) is Food)
             {
                 MapManager.MoveUnit(yNew, xNew, unitToUpdate);
                 MapManager.SpawnUnitNearBase(unitToUpdate.TypeOfObject);
                 stats.IncFood();
             }
             else
             {
                 MapManager.MoveUnit(yNew, xNew, unitToUpdate);
             }
         }
     }
     MapManager.UpdateArmies();
 }
Пример #3
0
 public void SetItem(int y, int x, TypesOfObject obj)
 {
     Array[y, x] = obj;
     if (obj == TypesOfObject.BaseBlack || obj == TypesOfObject.BaseWhite) // adds base to list if needed
     {
         BaseList.Add(new Base(y, x, obj, this));
     }
 }
Пример #4
0
        private void MakeATurn(IAlgorithm armyType, TypesOfObject unit, Statistics stats)
        {
            var army = MapManager.Map.Army.FindAll(x => x.TypeOfObject == unit);

            armyType.MoveAllUnits(army, MapManager.Map.GetLength());
            UpdateUnits(unit, stats);
            UnitsAttackFoes();
            stats.SetArmyNumber(army);
        }
Пример #5
0
 private void GenerateBaseAndUnit(TypesOfObject unit, TypesOfObject Base)
 {
     while (true)
     {
         var x = Rnd.Next(1, Map.GetLength() - 1);
         var y = Rnd.Next(1, Map.GetLength() - 1);
         if ((Map.Array[y, x] != TypesOfObject.FreeSpace && Map.Array[y, x] != TypesOfObject.Brick && Map.Array[y, x] != TypesOfObject.Food) ||
             (Map.Array[y - 1, x] != TypesOfObject.FreeSpace && Map.Array[y - 1, x] != TypesOfObject.Brick && Map.Array[y - 1, x] != TypesOfObject.Food))
         {
             continue;
         }
         Map.SetItem(y, x, Base);
         Map.SetItem(y - 1, x, unit);
         Map.Army.Add(new Unit(y - 1, x, unit, Map));
         break;
     }
 }
Пример #6
0
        public void SpawnUnitNearBase(TypesOfObject unit)
        {
            var baseTmp = unit == TypesOfObject.UnitWhite ? Map.BaseList.Find(x => x.TypeOfObject == TypesOfObject.BaseWhite) : Map.BaseList.Find(x => x.TypeOfObject == TypesOfObject.BaseBlack);

            for (var i = baseTmp.Y - 1; i <= baseTmp.Y + 1; i++)
            {
                for (var j = baseTmp.X - 1; j <= baseTmp.X + 1; j++)
                {
                    if (i != baseTmp.Y && j != baseTmp.X && (Map.Array[i, j] == TypesOfObject.Food ||
                                                             Map.Array[i, j] == TypesOfObject.Brick ||
                                                             Map.Array[i, j] == TypesOfObject.FreeSpace))
                    {
                        Map.SetItem(i, j, unit);
                        Map.AddUnitToArmy(new Unit(i, j, unit, Map));
                        return;
                    }
                }
            }
        }
Пример #7
0
 public Border(int i, int j, TypesOfObject obj) : base(i, j, obj)
 {
 }
 public static void AddUnitOnMap(int y, int x, Map map, TypesOfObject obj)
 {
     map.SetItem(y, x, obj);
     map.Army.Add(new Unit(y, x, obj, map));
 }
Пример #9
0
 public Brick(int i, int j, TypesOfObject obj) : base(i, j, obj)
 {
     Color = Colors.Brown;
 }
Пример #10
0
 public BaseItem(int i, int j, TypesOfObject obj)
 {
     TypeOfObject = obj;
     J            = j;
     I            = i;
 }
Пример #11
0
 public Food(int i, int j, TypesOfObject obj) : base(i, j, obj)
 {
     Color = Colors.Green;
 }
 public UnitBase(int i, int j, TypesOfObject obj) : base(i, j, obj)
 {
     Color = obj == TypesOfObject.UnitBlack ? Colors.Black : Colors.White;
 }
Пример #13
0
 public Unit(int i, int j, TypesOfObject obj, Map map) : base(i, j, obj)
 {
     Map        = map;
     ScopeArray = GetAllObjectsInScopeArray();
 }
 public FreeSpace(int i, int j, TypesOfObject obj) : base(i, j, obj)
 {
     Color = Colors.Bisque;
 }