Add pbotlib.odds.
[poker.git] / pbot / tournament.py
1 """Define a poker championship.
2 """
3
4 from .deck import new_deck
5 from .table import Table
6
7
8 def run(players, blinds, start_stack, hand_limit, tournaments, verbose=False):
9     for n in xrange(tournaments):
10         for player in players:
11             player.cash = start_stack
12         table = Table(deck=new_deck(), players=players, blinds=blinds,
13                       verbose=verbose)
14         while len(table.players) > 1 and table.hand_count < hand_limit:
15             table.play_round()
16             # keep bots up to date, so they can think in parallel
17             for player in players:
18                 if player.brain:
19                     player.log_flush(table.log)
20         if len(table.players) == 1:
21             print "INFO WINNER: Player %s" % table.players[0]
22         else:
23             assert table.hand_count >= hand_limit
24             print "INFO Time expired"
25             for player in table.players:
26                 print "INFO Tie: Player %s" % player