示例#1
0
        private Actions get_AI_action(AIPlayer ai, ref bool is_call, int player_bet, int call_amount)
        {
            Actions action = Actions.END;

               if (player_bet == call_amount)
               {
                  action = Actions.CALL;
               }
               else if (player_bet == 0)
               {
                  action = Actions.FOLD;
               }
               else if (player_bet > 0)
               {
                  if (is_call)
                  {
                     action = Actions.RAISE;
                  }
                  else
                  {
                     action = Actions.BET;
                     is_call = true;
                  }
               }

               return action;
        }
示例#2
0
 private int get_AI_bet(AIPlayer AI, bool is_call, int call_amount, int turn)
 {
     AI.update_tell_chance_modifier(players);
        return AI.AI_take_action(turn == 1, is_call, call_amount, AI.times_this_turn);
 }
示例#3
0
        // Constructors
        public Game(int n_players, Deck deck, int starting_funds = Money.DEFAULT_ORIGINAL_AMOUNT, int buy_in = Money.DEFAULT_BUY_IN, int max_size = Hand.DEFAULT_MAX_SIZE, int big_blind = Money.DEFAULT_BIG_BLIND, int small_blind = Money.DEFAULT_SMALL_BLIND, int ante = Money.DEFAULT_ANTE)
        {
            if (n_players < 4)
             {
            n_players = 4;
             }
             else if (n_players > 6)
             {
            n_players = 6;
             }

             Random rand = new Random();
             this.deck = deck;
             this.deck.shuffle();

             players = new Player[n_players];
             player_queue = new Queue<Player>(n_players);
             string player_1_name = query_player_1_name();
             bool is_male_player = query_player_1_gender();

             // initialize the players
             // initialize the bank
             // empty out the queue
             // assign and shuffle the deck

             /*
             int starting_funds = Money.DEFAULT_ORIGINAL_AMOUNT;
             int buy_in = Money.DEFAULT_BUY_IN;
             int big_blind = Money.DEFAULT_BIG_BLIND;
             int small_blind = Money.DEFAULT_SMALL_BLIND;
             int ante = Money.DEFAULT_ANTE;
             int max_size = Hand.DEFAULT_MAX_SIZE;
             */

             bool[] AI_genders;
             string[] AI_names = choose_AI_names(player_1_name, out AI_genders);

             players[0] = new Player(starting_funds, buy_in, big_blind, small_blind, ante, deck.draw(5), this.deck, max_size, player_1_name, is_male_player);
             player_queue.Enqueue(players[0]);

             for (int i = 1; i < n_players; i++)
             {
            Wealth_Types wealth_type = (Wealth_Types)rand.Next((int)Wealth_Types.END);
            Betting_Types betting_type = (Betting_Types)rand.Next((int)Betting_Types.END);
            Perception_Types perception_type = (Perception_Types)rand.Next((int)Perception_Types.END);
            Personality personality = new Personality(wealth_type, betting_type, perception_type);

            players[i] = new AIPlayer(personality, this.deck, AI_names[i - 1], AI_genders[i - 1]);

            player_queue.Enqueue(players[i]);
             }

             // assign the bank's variables
             bank = new Money(0, buy_in, big_blind, small_blind, ante);
        }