def __init__(self): params = {} params['root_node'] = {} params['root_node']['board'] = card_to_string.string_to_board('') params['root_node']['street'] = 0 params['root_node']['current_player'] = constants.players.P1 params['root_node']['bets'] = arguments.Tensor([100, 100]) params['limit_to_street'] = False builder = PokerTreeBuilder() self.root_node = builder.build_tree(params) # print(self.builder.node_id_acc) filling.fill_uniform(self.root_node) self.state = GameState() self._cached_terminal_equities = {}
def parsed_state_to_nodestate(self, processed_state): node = Node() node.street = processed_state['current_street'] node.board = card_to_string.string_to_board(processed_state['board']) node.current_player = processed_state['acting_player'] node.bets = arguments.Tensor([processed_state['bet1'], processed_state['bet2']]) state = GameState() state.node = node #TODO mjb private card been hardcode state.private = [-1 for i in range(game_settings.player_count)] state.private[node.current_player] = arguments.Tensor([processed_state['hand_id']]) return state
def test(self, table_sl): builder = PokerTreeBuilder() params = {} params['root_node'] = {} params['root_node']['board'] = card_to_string.string_to_board('') params['root_node']['street'] = 0 params['root_node']['current_player'] = constants.players.P1 params['root_node']['bets'] = arguments.Tensor([100, 100]) params['limit_to_street'] = False tree = builder.build_tree(params) # table_sl = torch.load('/home/mjb/Nutstore/deepStack/Data/Model/Iter:' + str(model_num) + '.sl') #constract the starting range filling = StrategyFilling() range1 = card_tools.get_uniform_range(params['root_node']['board']) range2 = card_tools.get_uniform_range(params['root_node']['board']) filling.fill_uniform(tree) starting_ranges = arguments.Tensor(game_settings.player_count, game_settings.card_count) starting_ranges[0].copy_(range1) starting_ranges[1].copy_(range2) table_sl.model.eval() # self.dfs_fill_table(tree, table_sl,builder) self.dfs_fill_strategy(table_sl,tree, builder) tree_values = TreeValues() tree_values.compute_values(tree, starting_ranges) print('Exploitability: ' + str(tree.exploitability.item()) + '[chips]' ) return tree.exploitability.item()
import Game.card_to_string as card_to_string from Game.card_tools import card_tools card_tools = card_tools() import Settings.arguments as arguments from Tree.tree_builder import PokerTreeBuilder from Tree.tree_visualiser import TreeVisualiser from Tree.tree_builder import Node from Tree.strategy_filling import StrategyFilling import Settings.constants as constants builder = PokerTreeBuilder() params = {} params['root_node'] = {} params['root_node']['board'] = card_to_string.string_to_board('Ks') params['root_node']['street'] = 1 params['root_node']['current_player'] = constants.players.P1 params['root_node']['bets'] = arguments.Tensor([100, 100]) params['limit_to_street'] = True tree = builder.build_tree(params) filling = StrategyFilling() range1 = card_tools.get_uniform_range(params['root_node']['board']) range2 = card_tools.get_uniform_range(params['root_node']['board']) filling.fill_uniform(tree)