public Intersection[] GetPossibleSettlements(int playerID)
{
return new HashSet<Intersection>(this.roads.Keys.Where(k => roads[k] == playerID)
.SelectMany(e => this.GetAdjacentIntersections(e)))
.Where(i => HasNoNeighbors(i)
&& !this.settlements.ContainsKey(i)).ToArray();
}