예제 #1
0
    def test_shuffle(self):
        d1 = Deck(seed=0.1)
        d2 = Deck(seed=0.1)

        self.assertEquals(d1.draw(), d2.draw())
        self.assertEquals(1, d1.num_drawn)
        self.assertEquals(1, d2.num_drawn)
예제 #2
0
    def test_multi_draw(self):
        d1 = Deck(seed=0.1)
        d2 = Deck(seed=0.1)

        self.assertEquals(d1.draw(3), d2.draw(3))
        self.assertEquals(3, d1.num_drawn)
        self.assertEquals(3, d2.num_drawn)
예제 #3
0
    def test_predrawn(self):
        d1 = Deck(seed=0.1)
        d2 = Deck(seed=0.1, num_drawn=2)
        self.assertEquals(0, d1.num_drawn)
        self.assertEquals(2, d2.num_drawn)

        d1.draw()
        d1.draw()
        self.assertEquals(2, d1.num_drawn)

        self.assertEquals(d1.draw(), d2.draw())
예제 #4
0
    def __init__(self, seats=8, quiet=False, training=False):
        self._blind_index = 0
        [self._smallblind, self._bigblind] = Table.BLIND_INCREMENTS[0]
        self._deck = Deck()
        self._evaluator = Evaluator()

        self.community = []
        self._round = 0
        self._button = 0
        self._discard = []

        self._side_pots = [0] * seats
        self._current_sidepot = 0  # index of _side_pots
        self._totalpot = 0

        self._tocall = 0
        self._lastraise = 0
        self._number_of_hands = 0

        # fill seats with dummy players
        self._seats = [
            Player(-1, -1, 0, 'empty', 0, True) for _ in range(seats)
        ]
        self.emptyseats = seats
        self._player_dict = {}

        self.teacher = xmlrpc.client.ServerProxy('http://0.0.0.0:8080')

        self._quiet = quiet
        self._training = training
        self._run_thread = Thread(target=self.run, args=())
        self._run_thread.daemon = True
예제 #5
0
    def __init__(self, seats=8, quiet=False, training=False):
        self._blind_index = 0
        [self._smallblind, self._bigblind] = Table.BLIND_INCREMENTS[0]
        self._deck = Deck()
        self._evaluator = Evaluator()

        self.community = []
        self._round = 0
        self._button = 0
        self._discard = []

        self._side_pots = [0] * seats
        self._current_sidepot = 0  # index of _side_pots
        self._totalpot = 0

        self._tocall = 0
        self._lastraise = 0
        self._number_of_hands = 0

        # fill seats with dummy players
        self._seats = [Player(0, 'empty', 0, None, True) for _ in range(seats)]
        self.emptyseats = seats
        self._player_dict = {}

        self._quiet = quiet
        self._training = training
예제 #6
0
    def start(self, channel):
        self.state = START_STATE
        self.timer = WAIT
        self.players = []
        self.deck = Deck()
        self.current_player = 0
        self.chat = Chat(self.slack_client, channel)
        self.pot_manager = PotManager(self.chat)
        self.join_manager = JoinManager(self.slack_client, channel,
                                        self.players)

        self.bet_manager = BetManager(self.pot_manager, self.players)
        self.board = []
        self.last_message = None
        self.board_message = None
예제 #7
0
 def __init__(self):
     self.deck = Deck()
     self.reset()
     self._evaluator = Evaluator()
     self.monte_carlo_rounds = 1000
예제 #8
0
import numpy as np
import random
from holdem import Analyzer, NeuralNetwork, HoldemAI
from deuces.deuces import Card, Deck, Evaluator


if __name__ = '__main__':
    a = Analyzer()
    a.monte_carlo_rounds = 2000

    nn = NeuralNetwork([206,206,100,1], 'analyzer_network', 0.1)

    deck = Deck()
    hand = []
    community = []
    opponents = 0
    game_stage = [0,3,4,5]

    for i in range(1000000):
        community = []
        deck.shuffle()
        a.reset()

        hand = deck.draw(2)
        for _ in range(game_stage[random.randint(0,3)]):
            community.append(deck.draw(1))
        opponents = random.randint(1,7)

        a.set_num_opponents(opponents)
        a.set_pocket_cards(*hand)
        for card in community: