本文整理汇总了C#中System.Coordinate.ForEach方法的典型用法代码示例。如果您正苦于以下问题:C# Coordinate.ForEach方法的具体用法?C# Coordinate.ForEach怎么用?C# Coordinate.ForEach使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Coordinate
的用法示例。
在下文中一共展示了Coordinate.ForEach方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PlaceShip
public bool PlaceShip(Ship ship)
{
var decks = (int)ship.Type;
var possibleCoordinates = new Coordinate[decks];
var startingPoint = Coordinate.Copy(ship.StartingPoint);
for (var i = 0; i < decks; i++)
{
//try to validate
if (Field.ValidateCoordinate(startingPoint))
{
//proximity check
if (Field.ProximityCheck(startingPoint)) return false;
possibleCoordinates[i] = Coordinate.Copy(startingPoint);
if (ship.Orientation == ShipOrientation.Vertical)
startingPoint.MoveDown();
else
startingPoint.MoveRight();
}
else
return false;
}
//if everything went fine, persist possibleCoordinates on map
possibleCoordinates.ForEach(c => Field[c] = new Cell { State = CellState.ShipDeck, Coordinate = c, ShipId = ship.Id });
//add ship to collection
_ships.Add(ship);
return true;
}