public static int ResolveMoveEnergy(Position from, Position to, int stepsCount, Map map, IList <Robot> robots)
        {
            IList <Position> positions = new List <Position>();

            positions.Add(from);
            for (int i = 0; i < stepsCount; i++)
            {
                positions.Add(ResolveMovePosition(positions[i], to, stepsCount - i, map, robots));
            }
            positions.Add(to);

            int energy = 0;

            for (int i = 0; i < positions.Count - 1; i++)
            {
                energy += ResolveDistanceEnergy(positions[i], positions[i + 1]);
            }

            return(energy);
        }
        public static Position ResolveMovePosition(Position from, Position to, int stepsCount, Map map, IList <Robot> robots)
        {
            float x = from.X + (to.X - from.X) / stepsCount;
            float y = from.Y + (to.X - from.X) / stepsCount;

            Position position = new Position((int)Math.Round(x), (int)Math.Round(y));

            return(map.FindFreeCell(position, robots));
        }