コード例 #1
0
ファイル: data_input.py プロジェクト: dlinov/pythonpoker
	def get_bank(self):
		x0, y0 = self.marker
		x1, y1, x2, y2 = self.s.bank_offset
		area = imf.get_screenshot().crop((x0 + x1, y0 + y1, x0 + x2, y0 + y2))
		str = imf.ocr(area)
		if str:
			str = str.replace('$', '')
			if str.isdigit():
				return int(str)
コード例 #2
0
ファイル: data_input.py プロジェクト: dlinov/pythonpoker
	def get_money(self, rectangle):
		rect = ()
		for i in xrange(0, len(rectangle)):
			rect += (rectangle[i] + self.marker[i % 2], )
		area = imf.get_screenshot().crop(rect)
		str = imf.ocr(area)
		#print('Recognized area: {}'.format(str))
		if str:
			if str[0] == '$':
				str = str[1:]
			if  str.isdigit():
				return int(str)			
コード例 #3
0
ファイル: data_input.py プロジェクト: dlinov/pythonpoker
	def wait_for_decision(self, game_state):
		fold_im = imf.button_images['fold']
		x1, y1, x2, y2, x3, y3 = self.marker + self.s.buttons['fold'] + fold_im.size
		while not imf.check_equal(fold_im, imf.get_screenshot().crop((x1 + x2, y1 + y2, x1 + x2 + x3, y1 + y2 + y3))):
			n_table_cards = len(self.get_table_cards())
			table_changed = n_table_cards == 0 and len(game_state.table_cards) > 0
			new_player_cards = self.get_player_cards()
			player_cards_changed = len(new_player_cards) != len(game_state.player.cards)
			if not player_cards_changed:
				for i in range(0, 2):
					if new_player_cards[i].__str__() != game_state.player.cards[i].__str__():
						player_cards_changed = True
						break				

			if table_changed or player_cards_changed:
				# TODO: call one method to reset round
				game_state.stage = poker.stages.nocards
				game_state.player.cards = []
				break;
			time.sleep(0.47)
		game_state.need_decision = True
		game_state.can_check = self.contains_button('check', self.s.buttons['check'])
		print('DEBUG: fold available (or round end)')