Beispiel #1
0
        public static List <IOneUnitController> GetUnitsInRegion(this IOccupatedPossitionsMap possitionsMap,
                                                                 IntVector2 point1, IntVector2 point2)
        {
            var units       = new List <IOneUnitController>();
            var loopParamsI = new LoopPaprams(point1.x, point2.x);

            for (int i = loopParamsI.StartValue; loopParamsI.Condition(i); i = loopParamsI.Operation(i))
            {
                var loopParamsJ = new LoopPaprams(point1.y, point2.y);
                for (int j = loopParamsJ.StartValue; loopParamsJ.Condition(j); j = loopParamsJ.Operation(j))
                {
                    if (!possitionsMap.IsVacantPosition(new IntVector2(i, j)))
                    {
                        units.Add(possitionsMap.GetUnitOnPosition(new IntVector2(i, j)));
                    }
                }
            }

            return(units);
        }
Beispiel #2
0
        public static List <IntVector2> GetFreePositionsInRegion(this IOccupatedPossitionsMap possitionsMap,
                                                                 IntVector2 point1, IntVector2 point2)
        {
            var positions    = new List <IntVector2>();
            var tempPosition = IntVector2Constant.UNASSIGNET;

            var loopParamsI = new LoopPaprams(point1.x, point2.x);

            for (int i = loopParamsI.StartValue; loopParamsI.Condition(i); i = loopParamsI.Operation(i))
            {
                var loopParamsJ = new LoopPaprams(point1.y, point2.y);
                for (int j = loopParamsJ.StartValue; loopParamsJ.Condition(j); j = loopParamsJ.Operation(j))
                {
                    tempPosition = new IntVector2(i, j);
                    if (possitionsMap.IsVacantPosition(tempPosition))
                    {
                        positions.Add(tempPosition);
                    }
                }
            }

            return(positions);
        }