本文整理汇总了C#中IBoard.GetAdjacentIntersections方法的典型用法代码示例。如果您正苦于以下问题:C# IBoard.GetAdjacentIntersections方法的具体用法?C# IBoard.GetAdjacentIntersections怎么用?C# IBoard.GetAdjacentIntersections使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IBoard
的用法示例。
在下文中一共展示了IBoard.GetAdjacentIntersections方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OwnTileValue
private int OwnTileValue(int tile, IBoard board)
{
int value = 0;
foreach(Intersection i in board.GetAdjacentIntersections(tile)){
Piece curPiece = board.GetPiece(i);
if (curPiece != null && curPiece.Player == id)
{
value += curPiece.Token == Token.City ? 2 : 1;
}
}
return Chances(board.GetTile(tile).Value) * value;
}
示例2: GetEnds
private IEnumerable<Intersection> GetEnds(Intersection inter, IBoard board)
{
return board.GetAdjacentEdges(inter).SelectMany(e => board.GetAdjacentIntersections(e)).Where(i => !i.Equals(inter));
}
示例3: GetScore
private double GetScore(Edge e, IBoard board)
{
Intersection[] adjacentFree = board.GetAdjacentIntersections(e).Where(i => board.HasNoNeighbors(i)).ToArray();
if (adjacentFree.Length > 0)
{
return adjacentFree.Average(i => GetScore(i, board));
}
return 0.0;
}
示例4: RoadConnected
/// <summary>
/// Figure out if a given edge on the board is connected to a given players road in some end
/// </summary>
/// <param name="edge">The edge to check</param>
/// <param name="playerId">The id of the player to test</param>
/// <returns>True if the edge is connected to a road</returns>
private bool RoadConnected(IBoard board, Edge edge, int playerId)
{
return board.GetAdjacentIntersections(edge)
.SelectMany(inter => board.GetAdjacentEdges(inter))
.Any(e => board.GetRoad(e) == playerId);
}