예제 #1
0
        /// <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;
        }
예제 #2
0
        /// <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());
        }