Exemplo n.º 1
0
        private static void train()
        {
            var dealer             = new RandomDealer();
            var trainer            = new TexasHoldemTrainer(dealer);
            int numberOfTrainings  = 10000;
            int handsPerTraining   = 100;
            int handsCounter       = 0;
            int numberOfTotalhands = numberOfTrainings * handsPerTraining;
            var trainedTree        = loadSnapShot();

            if (trainedTree != null)
            {
                trainer.GameNodes = trainedTree;
            }

            var stopwatch = new Stopwatch();

            for (int i = 0; i < numberOfTrainings; i++)
            {
                stopwatch.Restart();
                trainer.Train(handsPerTraining);
                double duration = stopwatch.Elapsed.TotalSeconds;
                handsCounter += handsPerTraining;
                var msg = string.Format("{0}/{1} hands trained in {2}s. ", handsCounter, numberOfTotalhands, duration);
                takeSnapShot(trainer.GameNodes, "cfr-tree.proto");
                log(msg);
            }
        }
Exemplo n.º 2
0
        public void Start()
        {
            this.sessionEntity.State = SessionState.Running;
            var players = new List <Player>();

            players.Add(player1);
            players.Add(player2);

            var dealer = new RandomDealer();

            game = new HeadsupGame(players, dealer);

            while (sessionEntity.PlayedHandsCount < sessionEntity.TotalHandsCount && State == SessionState.Running)
            {
                var playedHand = game.PlayHand();
                playedHand.SessionId = this.sessionEntity.Id;
                playedHand.Timestamp = DateTime.Now;

                playedHandRepository.Insert(playedHand);
                this.sessionEntity.PlayedHandsCount++;
                sessionRepository.Update(sessionEntity);
            }

            this.sessionEntity.State = SessionState.Completed;
            sessionRepository.Update(sessionEntity);
        }