当前位置: 首页>>代码示例>>C#>>正文


C# Coord.Where方法代码示例

本文整理汇总了C#中Coord.Where方法的典型用法代码示例。如果您正苦于以下问题:C# Coord.Where方法的具体用法?C# Coord.Where怎么用?C# Coord.Where使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Coord的用法示例。


在下文中一共展示了Coord.Where方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CalculateDirection

        private Direction CalculateDirection()
        {
            var startInfo = new PointInfo(CalculateRadius(_startPosition), 0);
            var startCoord = _startPosition;

            // Ближайшие к луноходу точки
            var points = new Coord[4];
            for (var i = 0; i < 4; i++)
            {
                //Up
                points[0] = new Coord(startCoord.X, startCoord.Y + 1);
                //Left
                points[1] = new Coord(startCoord.X - 1, startCoord.Y);
                //Right
                points[2] = new Coord(startCoord.X + 1, startCoord.Y);
                //Down
                points[3] = new Coord(startCoord.X, startCoord.Y - 1);
            }

            // Добавление надёжных точек в возможный план маршрута
            var oneBlockVision = points.Where(IsFree).ToList();

            var infos = new PointInfo[oneBlockVision.Count];
            for (var i = 0; i < infos.Length; i++)
            {
                infos[i] = new PointInfo(CalculateRadius(oneBlockVision[i]), startInfo.MoveCost);
            }

            var min = 2001;
            var k = 0;
            // ReSharper disable once InconsistentNaming
            var min_k = 5;
            foreach (var inf in infos)
            {
                var cost = inf.CalculateCost();
                //if (cost == min)
                //{
                //    if (_points[k].X < _points[min_k].X || _points[k].Y < _points[min_k].Y)
                //    {
                //        min_k = k;
                //    }
                //}
                if (cost < min)
                {
                    if (BlackList.Contains(points[k]))
                    {
                        k++;
                        continue;
                    }
                    min = cost;
                    min_k = k;
                }
                k++;
            }
            var d = (Direction) min_k;
            BlackList.Add(points[min_k]);
            return d;
        }
开发者ID:Deadpoolweid,项目名称:MoonWalker,代码行数:58,代码来源:Control.cs


注:本文中的Coord.Where方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。