def get_children_player_nodes(self, parent_node): children = [] # fold action fold_node = Node(parent_node) fold_node.terminal = True fold_node.action = "fold" fold_node.node_type = constants.node_types.terminal_fold children.append(fold_node) # P1 start check action if (parent_node.current_player == constants.players.P1 and parent_node.bets[0] == parent_node.bets[1]): check_node = Node(parent_node) check_node.action = "check" children.append(check_node) # raise -> ( P1 / P2 call ) -> chance # P1 check -> (P2 check ) -> chance elif parent_node.street == 0 and ( parent_node.bets[0] != parent_node.bets[1] or parent_node.bets[0] == parent_node.bets[1] and parent_node.current_player == constants.players.P2 ): chance_node = Node(parent_node) chance_node.current_player = constants.players.chance chance_node.bets[:] = chance_node.bets.max() chance_node.action = "call" if parent_node.bets[0] != parent_node.bets[1] else "check" children.append(chance_node) # call -> terminal else: terminal_call_node = Node(parent_node) terminal_call_node.current_player = 1 - constants.players.P2 terminal_call_node.terminal = True terminal_call_node.node_type = constants.node_types.terminal_call terminal_call_node.bets[:] = terminal_call_node.bets.max() terminal_call_node.action = "call" children.append(terminal_call_node) # raise action possible_bets = bet_sizing.get_possible_bets(parent_node) for possible_bet in possible_bets: raise_node = Node(parent_node) raise_node.bets = possible_bet raise_node.num_bets += 1 raise_node.action = "raise" children.append(raise_node) return children
def get_children_chance_nodes(self, parent_node): children = [] next_boards = card_tools.get_second_round_boards() for board in next_boards: chance_node = Node(parent_node) chance_node.current_player = constants.players.P1 chance_node.street = parent_node.street + 1 chance_node.board = board chance_node.board_string = card_to_string.cards_to_string(board) chance_node.num_bets = 0 chance_node.action = chance_node.board_string children.append(chance_node) return children