Пример #1
0
        public async Task <Game> PlayAsync(Player firstPlayer, Player secondPlayer)
        {
            var rounds = new List <Round>();

            for (int i = 1; i <= _gameSettings.TotalRounds; i++)
            {
                //make moves
                PlayerMove firstPlayerMove = await _strategyService.GetNextMoveAsync(firstPlayer, rounds);

                PlayerMove secondPlayerMove = await _strategyService.GetNextMoveAsync(secondPlayer, rounds);

                //add moves to history
                rounds.Add(GetRound(i, firstPlayerMove, secondPlayerMove));
            }
            var game = new Game
            {
                Id           = Guid.NewGuid().ToString(),
                FirstPlayer  = firstPlayer,
                SecondPlayer = secondPlayer,
                Rounds       = rounds
            };

            return(game);
        }