public GameState(IBoard board, List<DevelopmentCard> deck, int[] resourceBank, Player[] players, int curPlayer, List<LogEvent> log, int longestRoad, int largestArmy)
{
Board = board;
DevelopmentCards = deck == null ? 0 : deck.Count;
ResourceBank = resourceBank == null ? null : resourceBank.ToArray();
this.players = players;
this.curPlayer = curPlayer;
this.log = log;
if (players == null) players = new Player[0];
AllPlayerIds = players.Select(p => p.Id).ToArray();
LongestRoadId = longestRoad;
LargestArmyId = largestArmy;
}