예제 #1
0
        private BoggleTracker CreateTracker(IBogglePlayer player, BoggleBoard board)
        {
            BoggleTracker tracker = new BoggleTracker(player.Id, board);

            Trackers.Add(tracker);
            return(tracker);
        }
예제 #2
0
        public void Start()
        {
            // Play a game
            RandomSeed = 1;
            IBogglePlayer player = this;
            BoggleResult  result = BoggleServer.Instance.Play(player, RandomSeed);

            // Check result
            List <string> correctWords       = result.WordPointDict.Keys.Where(word => result.WordPointDict[word] > 0).ToList();
            int           correctWordCount   = correctWords.Count;
            int           incorrectWordCount = result.WordPointDict.Count - correctWordCount;

            Console.WriteLine("{0} result for board {1} =\n\t{2} points, {3} correct words, {4} incorrect words, {5} msec.",
                              Name, result.Board.Id, result.Points, correctWordCount, incorrectWordCount, result.Duration.TotalMilliseconds);
        }
예제 #3
0
        public BoggleResult Play(IBogglePlayer player, int randomSeed = 0, int boardSize = BoggleRules.BoardSizeDefault)
        {
            BoggleBoard   board   = Rules.GenerateBoard(randomSeed, boardSize);
            BoggleTracker tracker = CreateTracker(player, board);

            tracker.Start();

            try
            {
                player.Solve(board);
                tracker.Stop();
            }
            catch (Exception)
            {
                tracker.Stop();
                tracker.Update(string.Empty, BoggleRules.CatastrophicScore);
                throw;
            }

            BoggleResult result = CreateResult(tracker);

            DeleteTracker(player.Id, board.Id);
            return(result);
        }