private BoggleTracker CreateTracker(IBogglePlayer player, BoggleBoard board) { BoggleTracker tracker = new BoggleTracker(player.Id, board); Trackers.Add(tracker); return(tracker); }
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); }
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); }