Exemple #1
0
        public RoundIdResponse StartNewRound(StartNewRoundRequest newRoundRequest)
        {
            string heroName   = newRoundRequest.Players[newRoundRequest.HeroIndex].Name;
            string buttonName = newRoundRequest.Players[newRoundRequest.ButtonIndex].Name;

            List <Contracts.Player> sittingInPlayers = newRoundRequest.Players.Where(p => !p.SittingOut).ToList();
            int heroIndex   = sittingInPlayers.FindIndex(p => string.Equals(p.Name, heroName));
            int buttonIndex = sittingInPlayers.FindIndex(p => string.Equals(p.Name, buttonName));

            var round = new Round(new RoundInput(sittingInPlayers.Count, buttonIndex,
                                                 sittingInPlayers.Select(p => p.Name).ToList(),
                                                 sittingInPlayers.Select(p => (int)p.StackSize).ToList(),
                                                 newRoundRequest.SmallBlindSize, newRoundRequest.BigBlindSize));

            Rounds.Add(round.RoundId, round);
            RoundSetups.Add(round.RoundId, new RoundSetup()
            {
                HeroIndex = heroIndex
            });
            Brains.Add(round.RoundId, new Brain());
            round.RecordMove(new Move(round.GetCurrentPlayer(), new Decision(DecisionType.Ante, round.SmallBlindSize), StageEnum.Preflop));
            round.MoveToNextPlayer();
            round.RecordMove(new Move(round.GetCurrentPlayer(), new Decision(DecisionType.Ante, round.BigBlindSize), StageEnum.Preflop));
            round.MoveToNextPlayer();

            return(new RoundIdResponse()
            {
                RoundId = round.RoundId,
                Action = new ExpectedAction
                {
                    Action = ExpectedActionEnum.HeroHoles
                }
            });
        }
Exemple #2
0
        private void ProcessSetup(string[] parts, out Guid roundId)
        {
            //"Setup-Alice:100-Bob:100-Chris:100-David:1000-Ellen:1000-Frank:1000-5/10/4/5",
            var request = new StartNewRoundRequest();

            request.Players = new List <Player>();
            for (int i = 1; i <= 6; i++)
            {
                var segments = parts[i].Split(':');
                request.Players.Add(new Player()
                {
                    Name = segments[0], StackSize = int.Parse(segments[1])
                });
            }

            var numbers = parts[7].Split('/');

            request.SmallBlindSize = int.Parse(numbers[0]);
            request.BigBlindSize   = int.Parse(numbers[1]);
            request.HeroIndex      = int.Parse(numbers[2]);
            request.ButtonIndex    = int.Parse(numbers[3]);

            if (parts.Length == 9)
            {
                var segments = parts[8].Split(':');
                foreach (var segment in segments)
                {
                    request.Players[int.Parse(segment)].SittingOut = true;
                }
            }

            roundId = _rm.StartNewRound(request).RoundId;
        }
        public IActionResult StartNewRound([FromBody] StartNewRoundRequest request)
        {
            var response = RoundManager.Instance.StartNewRound(request);

            return(Ok(response));
        }