本文整理汇总了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;
}