/// <summary> /// Genetic Neural Training With Fixed Positions and Fixed Cards /// </summary> /// <param name="gameType"></param> /// <param name="gameCache"></param> /// <param name="playerNames"></param> /// <param name="startingStack"></param> /// <param name="minNumTablePlayers"></param> /// <param name="maxHandsToPlay"></param> /// <param name="actionPause"></param> /// <param name="aiManager"></param> /// <param name="positionPlayerIds"></param> /// <param name="cardsManager"></param> public GeneticNeuralTrainingPokerGame(PokerGameType gameType, databaseCacheClient gameCache, string[] playerNames, decimal startingStack, byte minNumTablePlayers, int maxHandsBeforeTableReset, int maxHandsToPlay, int actionPause, AIManager aiManager, List <long[]> positionPlayerIds, CardsManager cardsManager) : base(gameType, gameCache, minNumTablePlayers, aiManager, playerNames, startingStack, maxHandsToPlay, actionPause) { this.positionPlayerIds = positionPlayerIds; this.cardsManager = cardsManager; //Set the correct dealerIndex based on currentHandIndex dealerIndex = (byte)(cardsManager.CurrentHandIndex % gameCache.NumSeats); this.autoRemovePlayersWithLargeStackInBB = 200; this.maxHandsBeforeTableReset = maxHandsBeforeTableReset; }
/// <summary> /// Creates an array containing the cards required for the specified number of hands. File is saved as 'gameCards.cards' /// </summary> /// <param name="numHands"></param> /// <param name="numPlayers"></param> /// <param name="saveFileName"></param> /// <param name="optionalCardSeed">DateTime.Now is default.</param> public static void CreateCardsArray(int numHands, byte numPlayers, string saveFileName, long optionalCardSeed = 0) { if (optionalCardSeed == 0) { optionalCardSeed = DateTime.Now.Ticks; } CardsManager cards = new CardsManager(optionalCardSeed, 0, numPlayers, numHands); //Save the array out //File.WriteAllBytes(saveFileName, FBPSerialiser.SerialiseDataObject(cards.CardsArray)); File.WriteAllBytes(saveFileName, DPSManager.GetDataSerializer <ProtobufSerializer>().SerialiseDataObject <byte[][]>(cards.CardsArray, new List <DataProcessor>() { cardsCompressor }, new Dictionary <string, string>()).ThreadSafeStream.ToArray()); }