public IBoard PlaceRoad(Edge edge, int playerID)
{
var newRoads = new Dictionary<Edge, int>(roads);
newRoads[edge] = playerID;
return new Board(terrain, newRoads, new Dictionary<Intersection, Piece>(settlements), robberLocation, harbors, allIntersections, allEdges);
}