示例#1
0
	def analyze_flop(self, game_state):
		result = None
		bank = game_state.bank
		my_stack = game_state.player.money

		if my_stack:
			hand = poker.recognize_hand(game_state.player.cards, game_state.table_cards)
			card_set = game_state.player.cards + game_state.table_cards			
			if game_state.can_check:
				# check or raise
				flush_len = 4
				flush_possibility = poker.check_flush(card_set, flush_len)
				# pair or better or 4 cards of the same suit		
				if hand[0] > 0 or flush_possibility:
					result = 'bet'
				else:
					result = 'check'
			else:
				flush_len = 2
				flush_possibility = poker.check_flush(card_set, flush_len)
				if flush_possibility:
					result = 'fold'
				elif hand[0] > 1:	# two pairs or better
					result = 'raise'
				else:
					result = 'call'
		else:
			result = 'check'
		return result
示例#2
0
	def analyze_turn(self, game_state):
		result = None
		bank = game_state.bank
		my_stack = game_state.player.money
		if my_stack:
			hand = poker.recognize_hand(game_state.player.cards, game_state.table_cards)
			card_set = game_state.player.cards + game_state.table_cards	
			if game_state.can_check:
				if hand[0] > 2:
					result = 'bet'
				else:
					result = 'check'
			else:
				better_than_two_pairs = hand[0] > 2
				better_than_three_of_a_kind = hand[0] > 3
				better_than_flush = hand[0] > 5
				# change, need to recognize if pair lies on the table
				pair_of_q_or_higher = hand[0] > 1 and max(lambda c: cards.values.index(c), cards) > 9
				flush_len = 3
				flush_possibility = poker.check_flush(card_set, flush_len)
				if flush_possibility:
					if better_than_flush:
						result = 'call'
					else:
						result = 'fold'
				else:
					if better_than_flush:
						result = 'raise'
					else:
						if better_than_three_of_a_kind:
							result = 'call'
						else:
							result = 'fold'
		else:
			result = 'check'
		return result