示例#1
0
        public static Player GeneratePlayer(
            Card deadCards        = Card.None,
            Position deadPosition = Position.None,
            double stack          = -1d,
            bool?isToPlay         = null,
            bool?isHero           = null)
        {
            var random   = new Random();
            var cards    = BoardGenerator.GenerateHand(deadCards);
            var position = GeneratePosition(deadPosition);

            stack    = (stack == -1d) ? GenerateStack() : stack;
            isToPlay = isToPlay.HasValue ? isToPlay : Convert.ToBoolean(random.Next(0, 2));
            isHero   = isHero.HasValue ? isHero : Convert.ToBoolean(random.Next(0, 2));
            var player = new Player(cards, position, stack, isToPlay.Value, isHero.Value);

            return(player);
        }
示例#2
0
        public static GameState GenerateState()
        {
            var street  = GenerateStreet();
            var hero    = GeneratePlayer(isHero: true, isToPlay: true);
            var villain = GeneratePlayer(
                deadCards: hero.HoleCards,
                deadPosition: hero.Position,
                isToPlay: false,
                isHero: false);
            var board = BoardGenerator.GenerateFlop(hero.HoleCards | villain.HoleCards);

            board |= BoardGenerator.FillFromTo(board, Street.Flop, street);
            var action      = GenerateAction();
            var pot         = action.IsPassive() ? 1.5d : 2.25d;
            var wagerToCall = action.IsPassive() ? 0.0d : 0.75d;

            return(StateFactory.CreateStartState(
                       board, street, hero, villain, pot, wagerToCall, action));
        }