static MapPlayerGameConfigToCardSet GetStartingHandForSplit(StartingCardSplit split) { return(delegate(int playerIndex, GameConfig gameConfig) { return GetCardsForSplit(split, gameConfig); }); }
public static GameConfig Create(StartingCardSplit split, params Card[] cards) { var result = new GameConfigBuilder(); result.kingdomPiles = cards; result.CardSplit = split; return(result.ToGameConfig()); }
public static double ComparePlayers( object player1OrString, object player2OrString, bool useShelters = false, bool useColonyAndPlatinum = false, StartingCardSplit split = StartingCardSplit.Random, bool firstPlayerAdvantage = false, IEnumerable <CardCountPair>[] startingDeckPerPlayer = null, bool shouldParallel = true, bool showVerboseScore = true, bool showCompactScore = false, bool showDistribution = false, bool createHtmlReport = true, int numberOfGames = 1000, int logGameCount = 10, bool debugLogs = false, CreateGameLog createGameLog = null) { PlayerAction player1 = strategyLoader.GetPlayerAction(player1OrString); PlayerAction player2 = strategyLoader.GetPlayerAction(player2OrString); GameConfigBuilder builder = new GameConfigBuilder(); PlayerAction.SetKingdomCards(builder, player1, player2); builder.useColonyAndPlatinum = useColonyAndPlatinum; builder.useShelters = useShelters; builder.CardSplit = split; if (startingDeckPerPlayer != null) { builder.SetStartingDeckPerPlayer(startingDeckPerPlayer); } var gameConfig = builder.ToGameConfig(); return(ComparePlayers( player1, player2, gameConfig, firstPlayerAdvantage: firstPlayerAdvantage, shouldParallel: shouldParallel, showVerboseScore: showVerboseScore, showCompactScore: showCompactScore, showDistribution: showDistribution, createHtmlReport: createHtmlReport, logGameCount: logGameCount, debugLogs: debugLogs, numberOfGames: numberOfGames, createGameLog: createGameLog)); }
public double ComparePlayers( PlayerAction player1, PlayerAction player2, bool useShelters = false, bool useColonyAndPlatinum = false, StartingCardSplit split = StartingCardSplit.Random, bool rotateWhoStartsFirst = true, IEnumerable <CardCountPair>[] startingDeckPerPlayer = null, bool shouldParallel = true, bool showVerboseScore = true, bool showCompactScore = false, bool showDistribution = false, bool createHtmlReport = true, bool createRankingReport = false, int numberOfGames = 1000, int logGameCount = 10, bool debugLogs = false, CreateGameLog createGameLog = null) { GameConfigBuilder builder = new GameConfigBuilder(); builder.SetKingdomCards(player1, player2); builder.useColonyAndPlatinum = useColonyAndPlatinum; builder.useShelters = useShelters; builder.CardSplit = split; if (startingDeckPerPlayer != null) { builder.SetStartingDeckPerPlayer(startingDeckPerPlayer); } var gameConfig = builder.ToGameConfig(); return(ComparePlayers( player1, player2, gameConfig, rotateWhoStartsFirst: rotateWhoStartsFirst, shouldParallel: shouldParallel, showVerboseScore: showVerboseScore, showCompactScore: showCompactScore, showDistribution: showDistribution, createHtmlReport: createHtmlReport, createRankingReport: createRankingReport, logGameCount: logGameCount, debugLogs: debugLogs, numberOfGames: numberOfGames, createGameLog: createGameLog)); }
static MapPlayerGameConfigToCardSet GetStartingHandForSplit(StartingCardSplit split) { return(delegate(int playerIndex, GameConfig gameConfig) { switch (split) { case StartingCardSplit.Random: return null; case StartingCardSplit.Split52: return Starting52Split; case StartingCardSplit.Split43: return gameConfig.useShelters ? Starting43SplitShelter : Starting43SplitEstate; default: throw new Exception(); } }); }
private static CardCountPair[] GetCardsForSplit(StartingCardSplit split, GameConfig gameConfig) { switch (split) { case StartingCardSplit.Random: return(null); case StartingCardSplit.Split52: return(Starting52Split); case StartingCardSplit.Split43: return(gameConfig.useShelters ? Starting43SplitShelter : Starting43SplitEstate); case StartingCardSplit.Split25: return(gameConfig.useShelters ? Starting25SplitShelter : Starting25Split); case StartingCardSplit.Split34: return(gameConfig.useShelters ? Starting34SplitShelter : Starting34SplitEstate); default: throw new Exception(); } }
public double ComparePlayers( string player1, string player2, bool useShelters = false, bool useColonyAndPlatinum = false, StartingCardSplit split = StartingCardSplit.Random, bool rotateWhoStartsFirst = false, IEnumerable <CardCountPair>[] startingDeckPerPlayer = null, bool shouldParallel = true, bool showVerboseScore = true, bool showCompactScore = false, bool showDistribution = false, bool createHtmlReport = true, bool createRankingReport = false, int numberOfGames = 1000, int logGameCount = 10, bool debugLogs = false, CreateGameLog createGameLog = null) { return(ComparePlayers( BuiltInStrategies.StrategyLoader.PlayerFromString(player1), BuiltInStrategies.StrategyLoader.PlayerFromString(player2), useShelters, useColonyAndPlatinum, split, rotateWhoStartsFirst, startingDeckPerPlayer, shouldParallel, showVerboseScore, showCompactScore, showDistribution, createHtmlReport, createRankingReport, numberOfGames, logGameCount, debugLogs, createGameLog)); }
static MapPlayerGameConfigToCardSet GetStartingHandForSplit(StartingCardSplit split) { return delegate(int playerIndex, GameConfig gameConfig) { switch (split) { case StartingCardSplit.Random: return null; case StartingCardSplit.Split52: return Starting52Split; case StartingCardSplit.Split43: return gameConfig.useShelters ? Starting43SplitShelter : Starting43SplitEstate; default: throw new Exception(); } }; }
public static GameConfig Create(StartingCardSplit split, params Card[] cards) { var result = new GameConfigBuilder(); result.kingdomPiles = cards; result.CardSplit = split; return result.ToGameConfig(); }
static MapPlayerGameConfigToCardSet GetStartingHandForSplit(StartingCardSplit[] splits) { return delegate(int playerIndex, GameConfig gameConfig) { return GetCardsForSplit(splits[playerIndex], gameConfig); }; }
private static CardCountPair[] GetCardsForSplit(StartingCardSplit split, GameConfig gameConfig) { switch (split) { case StartingCardSplit.Random: return null; case StartingCardSplit.Split52: return Starting52Split; case StartingCardSplit.Split43: return gameConfig.useShelters ? Starting43SplitShelter : Starting43SplitEstate; case StartingCardSplit.Split25: return gameConfig.useShelters ? Starting25SplitShelter : Starting25Split; case StartingCardSplit.Split34: return gameConfig.useShelters ? Starting34SplitShelter : Starting34SplitEstate; default: throw new Exception(); } }
public void SetCardSplitPerPlayer(StartingCardSplit[] splits) { this.shuffleLuck = GetStartingHandForSplit(splits); }
public double ComparePlayers( string player1, string player2, bool useShelters = false, bool useColonyAndPlatinum = false, StartingCardSplit split = StartingCardSplit.Random, bool rotateWhoStartsFirst = false, IEnumerable<CardCountPair>[] startingDeckPerPlayer = null, bool shouldParallel = true, bool showVerboseScore = true, bool showCompactScore = false, bool showDistribution = false, bool createHtmlReport = true, bool createRankingReport = false, int numberOfGames = 1000, int logGameCount = 10, bool debugLogs = false, CreateGameLog createGameLog = null) { return ComparePlayers( BuiltInStrategies.StrategyLoader.PlayerFromString(player1), BuiltInStrategies.StrategyLoader.PlayerFromString(player2), useShelters, useColonyAndPlatinum, split, rotateWhoStartsFirst, startingDeckPerPlayer, shouldParallel, showVerboseScore, showCompactScore, showDistribution, createHtmlReport, createRankingReport, numberOfGames, logGameCount, debugLogs, createGameLog); }
public double ComparePlayers( PlayerAction player1, PlayerAction player2, bool useShelters = false, bool useColonyAndPlatinum = false, StartingCardSplit split = StartingCardSplit.Random, bool rotateWhoStartsFirst = true, IEnumerable<CardCountPair>[] startingDeckPerPlayer = null, bool shouldParallel = true, bool showVerboseScore = true, bool showCompactScore = false, bool showDistribution = false, bool createHtmlReport = true, bool createRankingReport = false, int numberOfGames = 1000, int logGameCount = 10, bool debugLogs = false, CreateGameLog createGameLog = null) { GameConfigBuilder builder = new GameConfigBuilder(); builder.SetKingdomCards(player1, player2); builder.useColonyAndPlatinum = useColonyAndPlatinum; builder.useShelters = useShelters; builder.CardSplit = split; if (startingDeckPerPlayer != null) builder.SetStartingDeckPerPlayer(startingDeckPerPlayer); var gameConfig = builder.ToGameConfig(); return ComparePlayers( player1, player2, gameConfig, rotateWhoStartsFirst: rotateWhoStartsFirst, shouldParallel: shouldParallel, showVerboseScore: showVerboseScore, showCompactScore: showCompactScore, showDistribution: showDistribution, createHtmlReport: createHtmlReport, createRankingReport: createRankingReport, logGameCount: logGameCount, debugLogs: debugLogs, numberOfGames: numberOfGames, createGameLog: createGameLog); }