def win_prob_turn(k, data_cards, data_ingame): data_probs = [0] * k s = 0 p = 0 data_cards1 = data_cards[:len(data_cards) - 1] data_cards1.append(-1) for j in range(1, 53): if j not in data_cards1: p += 1 data_cards1[k * 2 + 4] = j for l in range(k): if data_ingame[l + 1] != 0: data_probs[l] = winner(l + 1, data_cards1, k) if max(data_probs) == data_probs[0]: s += 1 data_cards1[k * 2 + 4] = -1 x = (s / p) return x
def after_reaver(data_pots, data_cards, data_chips, k_player): k_pots = 1 for i in range(2, k_player + 1): if data_pots[i][0] == 0: break k_pots += 1 for i in range(1, k_pots + 1): max = 0 print(i) for j in range(1, k_player + 1): if (data_pots[i][j] == 1): if winner(j, data_cards, k_player) > max: max = winner(j, data_cards, k_player) kol = 0 for j in range(1, k_player + 1): if (data_pots[i][j] == 1): if winner(j, data_cards, k_player) == max: kol += 1 for j in range(1, k_player + 1): if (data_pots[i][j] == 1): if winner(j, data_cards, k_player) == max: data_chips[j] += int(data_pots[i][0] / kol) return data_chips
def bot_reaver(card1, card2, data_reaver, bet, prev_bet, chips, last_move): data_card = [] data_card.append(card1) data_card.append(card2) data_card.extend(data_reaver) if winner(1, data_card, 1) < 400000000000: r = random() if r < 0.9: return 0 else: if r > 0.98: stavka = stavka = int(bet * (random() * 2 + 1)) + prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka else: stavka = prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka if winner(1, data_card, 1) < 700000000000: r = random() if r < 0.1: return 0 else: if r > 0.7: stavka = stavka = int(bet * (random() * 2 + 1)) + prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka else: stavka = prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka if winner(1, data_card, 1) >= 700000000000: r = random() if r > 0.1: stavka = stavka = int(bet * (random() * 2 + 1)) + prev_bet else: stavka = prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka
def bot_turn(card1, card2, data_turn, bet, prev_bet, chips, last_move): data_card = [] data_card.append(card1) data_card.append(card2) data_card.extend(data_turn) f = False while f == False: f = True cardreaver = random() * 51 + 1 if cardreaver in data_card: f = False data_card.append(cardreaver) if winner(1, data_card, 1) < 300000000000: r = random() if r < 0.9: return 0 else: if r > 0.98: stavka = int(bet * (random() * 2 + 1)) + prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka else: stavka = prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka if winner(1, data_card, 1) < 600000000000: r = random() if r < 0.03: return 0 else: if r > 0.7: stavka = int(bet * (random() * 2 + 1)) + prev_bet if stavka > chips: return chips + last_move else: return stavka else: stavka = prev_bet if stavka > chips: return chips + last_move else: return stavka if winner(1, data_card, 1) >= 600000000000: r = random() if r > 0.1: stavka = int(bet * (random() * 2 + 1)) + prev_bet else: stavka = prev_bet if stavka > chips: return chips + last_move else: return stavka
def bot_flop(card1, card2, data_flop, bet, prev_bet, chips, last_move): # если никто не ставил, тогда bet = bigblind data_card = [] data_card.append(card1) data_card.append(card2) data_card.extend(data_flop) f = False while f == False: f = True cardturn = random() * 51 + 1 if cardturn in data_card: f = False f = False data_card.append(cardturn) while f == False: f = True cardreaver = random() * 51 + 1 if cardreaver in data_card: f = False data_card.append(cardreaver) if winner(1, data_card, 1) < 200000000000: r = random() if r < 0.9: return 0 else: if r > 0.98: stavka = int(bet * (random() * 2 + 1)) + prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka else: stavka = prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka if winner(1, data_card, 1) < 500000000000: r = random() if r < 0.1: return 0 else: if r > 0.7: stavka = int(bet * (random() * 2 + 1)) + prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka else: stavka = prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka if winner(1, data_card, 1) >= 500000000000: r = random() if r > 0.1: stavka = int(bet * (random() * 2 + 1)) + prev_bet else: stavka = prev_bet if stavka > chips + last_move: return chips + last_move else: return stavka
def loop(): prev_bet = 0 global temporary temporary = -1 bank_temp = 0 def win_p_func(): win_p.configure( text=(str(int(win_prob_flop(k, data_cards, data_ingame) * 100)) + " %")) def win_p_func_turn(): win_p.configure( text=(str(int(win_prob_turn(k, data_cards, data_ingame) * 100)) + " %")) btn_raise = Button(window, text="Raise", bg="black", fg="red", font=("Arial Bold", 14), command=lambda: player_bet(3)) btn_call = Button(window, text="Call", bg="black", fg="red", font=("Arial Bold", 14), command=lambda: player_bet(1)) btn_check = Button(window, text="Check/Fold", bg="black", fg="red", font=("Arial Bold", 14), command=lambda: player_bet(2)) btn_raise.place(width=100, height=50, x=450, y=430) btn_call.place(width=100, height=50, x=340, y=430) btn_check.place(width=100, height=50, x=230, y=430) k = 9 data_chips = [1000] * (k + 1) chips_cfg(data_chips) data_chips[0] = 0 blind = 10 dealer_pos = k data_ingame = [1] * (k + 1) data_ingame[0] = 0 f1 = False g = 0 while data_chips.count(0) < k: data_bets = [] bank_temp = 0 data_ingame = [0] * (k + 1) for i in range(1, k + 1): if data_chips[i] > 0: data_ingame[i] = 1 data_pots = [] for i in range(k + 1): data_pots.append([]) for j in range(k + 1): data_pots[i].append(0) data_pots[0][0] = -1 g += 1 data_cards = new_hand(k) image_links = create_image_links(data_cards) image_links_f = create_image_links_f(len(data_cards)) pilImage = Image.open(card_texture[data_cards[0]]) image6 = ImageTk.PhotoImage(pilImage) imagesprite6 = c1.create_image(42, 53, image=image6) pilImage = Image.open(card_texture[data_cards[1]]) image7 = ImageTk.PhotoImage(pilImage) imagesprite7 = c2.create_image(42, 53, image=image7) f = False while f == False: dealer_pos += 1 if dealer_pos == k + 1: # Передаем дилера следующему игроку dealer_pos = 1 if data_chips[dealer_pos] != 0: f = True dealer.place(x=dealer_data[dealer_pos - 1][0], y=dealer_data[dealer_pos - 1][1]) data_bets = [0] * (k + 1) f = False next_move = dealer_pos while f == False: # Ставим малый блайнд next_move = next_move + 1 if next_move == k + 1: next_move = 1 if data_chips[next_move] != 0: data_bets[next_move] = blind if data_chips[next_move] < blind: data_bets[next_move] = data_chips[next_move] data_chips[next_move] = 0 data_ingame[next_move] = 2 else: data_chips[next_move] -= blind f = True bets_cfg(data_bets) chips_cfg(data_chips) p_ch.configure(text="Your chips: " + str(data_chips[1])) p_bet.configure(text=str(data_bets[1])) f = False while f == False: # Ставим большой блайнд next_move = next_move + 1 if next_move == k + 1: next_move = 1 if data_chips[next_move] != 0: data_bets[next_move] = blind * 2 if data_chips[next_move] < blind * 2: data_bets[next_move] = data_chips[next_move] data_chips[next_move] = 0 data_ingame[next_move] = 2 else: data_chips[next_move] -= blind * 2 f = True bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets))) p_ch.configure(text="Your chips: " + str(data_chips[1])) p_bet.configure(text=str(data_bets[1])) bet = 20 # Разница в ставках prev_bet = 20 # Предыдущая ставка f = False # Цикл ставок, пока все не уровняют f1 = False s = 0 s_players = data_ingame.count(1) slider.configure(from_=prev_bet * 2, to=data_chips[1]) while f == False and f1 == False: f = True next_move = next_move + 1 if next_move == k + 1: next_move = 1 if data_ingame[next_move] == 1: s += 1 if next_move != 1: time.sleep(2) t = bot_preflop(data_cards[next_move * 2 - 2], data_cards[next_move * 2 - 1], bet, prev_bet, data_chips[next_move], data_bets[next_move]) hand_links = create_hand_links() if t == 0: for j in range(1, k + 1): if data_bets[j] > data_bets[next_move]: data_ingame[next_move] = 0 a = hand_links[next_move * 2 - 3].create_image( 18, 26, image=image_links_f[next_move * 2 - 3]) b = hand_links[next_move * 2 - 4].create_image( 18, 26, image=image_links_f[next_move * 2 - 4]) else: data_chips[next_move] -= (t - data_bets[next_move]) if t - prev_bet > 0: if bet <= t - prev_bet: bet = t - prev_bet prev_bet = t data_bets[next_move] = t if data_chips[next_move] == 0: data_ingame[next_move] = 2 bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets) + bank_temp)) p_ch.configure(text="Your chips: " + str(data_chips[1])) p_bet.configure(text=str(data_bets[1])) if next_move == 1: if prev_bet != 0 and data_chips[1] > prev_bet * 2: slider.configure(from_=prev_bet * 2, to=data_chips[1]) elif data_chips[1] > prev_bet * 2: slider.configure(from_=blind * 2, to=data_chips[1]) else: slider.configure(from_=data_chips[1], to=data_chips[1]) ##t = int(input("Введите ставку ")) temporary = -1 t = temporary while t == -1: time.sleep(1) t = temporary temporary = -1 if t == -4: if data_chips[1] <= prev_bet: t = -2 else: t = slider.get() if t == -2: if prev_bet < data_chips[1]: t = prev_bet - data_bets[1] else: t = data_chips[1] if t == -3: for j in range(1, k + 1): if data_bets[j] > data_bets[next_move]: data_ingame[next_move] = 0 else: data_chips[next_move] -= t if t + data_bets[next_move] - prev_bet > 0: if t + data_bets[next_move] - prev_bet >= bet: bet = t + data_bets[next_move] - prev_bet prev_bet = t + data_bets[next_move] data_bets[next_move] += t if data_chips[next_move] == 0: data_ingame[next_move] = 2 bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets) + bank_temp)) p_ch.configure(text="Your chips: " + str(data_chips[1])) p_bet.configure(text=str(data_bets[1])) temp = [] for i in range(1, k + 1): if data_ingame[i] == 1: temp.append(data_bets[i]) temp.sort() if len(temp) > 1: if temp[0] != temp[-1] or temp[0] < prev_bet or temp[ -1] < prev_bet: f = False if len(temp) == 1: if temp[0] < prev_bet: f = False if s < s_players: f = False if data_ingame.count(1) < 2: if len(temp) > 0: if temp[0] == prev_bet: f1 = True bank_temp += sum(data_bets) data_pots = exchange(data_pots, data_bets, data_ingame, k) ################################ FLOP ############################### btn_win_prob = Button(window, text="show win \n probability", bg="black", fg="red", font=("Arial Bold", 14), command=lambda: win_p_func()) btn_win_prob.place(width=100, height=50, x=0, y=220) pilImage = Image.open(card_texture[data_cards[k * 2]]) image1 = ImageTk.PhotoImage(pilImage) imagesprite1 = t1.create_image(42, 53, image=image1) pilImage = Image.open(card_texture[data_cards[k * 2 + 1]]) image2 = ImageTk.PhotoImage(pilImage) imagesprite2 = t2.create_image(42, 53, image=image2) pilImage = Image.open(card_texture[data_cards[k * 2 + 2]]) image3 = ImageTk.PhotoImage(pilImage) imagesprite3 = t3.create_image(42, 53, image=image3) for i in range(1, k + 1): data_ingame[i] = data_pots[0][i] data_flop = [] data_flop.append(data_cards[k * 2]) data_flop.append(data_cards[k * 2 + 1]) data_flop.append(data_cards[k * 2 + 2]) prev_bet = 0 bet = blind * 2 f = False next_move = dealer_pos data_bets = [0] * (k + 1) s = 0 s_players = data_ingame.count(1) while f == False and f1 == False: f = True next_move = next_move + 1 if next_move == k + 1: next_move = 1 if data_ingame[next_move] == 1: s += 1 if next_move != 1: time.sleep(2) t = bot_flop(data_cards[next_move * 2 - 2], data_cards[next_move * 2 - 1], data_flop, bet, prev_bet, data_chips[next_move], data_bets[next_move]) if t == 0: for j in range(1, k + 1): if data_bets[j] > data_bets[next_move]: data_ingame[next_move] = 0 a = hand_links[next_move * 2 - 3].create_image( 18, 26, image=image_links_f[next_move * 2 - 3]) b = hand_links[next_move * 2 - 4].create_image( 18, 26, image=image_links_f[next_move * 2 - 4]) else: data_chips[next_move] -= (t - data_bets[next_move]) if t - prev_bet > 0: if t - prev_bet >= bet: bet = t - prev_bet prev_bet = t data_bets[next_move] = t if data_chips[next_move] == 0: data_ingame[next_move] = 2 bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets) + bank_temp)) p_ch.configure(text="Your chips: " + str(data_chips[1])) p_bet.configure(text=str(data_bets[1])) if next_move == 1: if prev_bet != 0 and data_chips[1] > prev_bet * 2: slider.configure(from_=prev_bet * 2, to=data_chips[1]) elif data_chips[1] > prev_bet * 2: slider.configure(from_=blind * 2, to=data_chips[1]) else: slider.configure(from_=data_chips[1], to=data_chips[1]) temporary = -1 t = temporary while t == -1: time.sleep(1) t = temporary temporary = -1 if t == -4: if data_chips[1] <= prev_bet: t = -2 else: t = slider.get() if t == -2: if prev_bet < data_chips[1]: t = prev_bet - data_bets[1] else: t = data_chips[1] if t == -3: for j in range(1, k + 1): if data_bets[j] > data_bets[next_move]: data_ingame[next_move] = 0 else: data_chips[next_move] -= t if t + data_bets[next_move] - prev_bet > 0: if bet <= t + data_bets[next_move] - prev_bet: bet = t + data_bets[next_move] - prev_bet prev_bet = t + data_bets[next_move] data_bets[next_move] += t if data_chips[next_move] == 0: data_ingame[next_move] = 2 bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets) + bank_temp)) p_ch.configure(text="Your chips: " + str(data_chips[1])) p_bet.configure(text=str(data_bets[1])) temp = [] for i in range(1, k + 1): if data_ingame[i] == 1: temp.append(data_bets[i]) temp.sort() if len(temp) > 1: if temp[0] != temp[-1] or temp[0] < prev_bet or temp[ -1] < prev_bet: f = False if len(temp) == 1: if temp[0] < prev_bet: f = False if s < s_players: f = False if data_ingame.count(1) < 2: if len(temp) > 0: if temp[0] == prev_bet: f1 = True bank_temp += sum(data_bets) data_pots = exchange(data_pots, data_bets, data_ingame, k) ############################# TURN ######################### btn_win_prob_turn = Button(window, text="show win \n probability", bg="black", fg="red", font=("Arial Bold", 14), command=lambda: win_p_func_turn()) btn_win_prob.destroy() btn_win_prob_turn.place(width=100, height=50, x=0, y=220) bank_temp += sum(data_bets) pilImage = Image.open(card_texture[data_cards[k * 2 + 3]]) image4 = ImageTk.PhotoImage(pilImage) imagesprite4 = t4.create_image(42, 53, image=image4) for i in range(1, k + 1): data_ingame[i] = data_pots[0][i] data_turn = [] data_turn.extend(data_flop) data_turn.append(data_cards[k * 2 + 3]) prev_bet = 0 bet = blind * 2 f = False next_move = dealer_pos data_bets = [0] * (k + 1) s = 0 s_players = data_ingame.count(1) while f == False and f1 == False: f = True next_move = next_move + 1 if next_move == k + 1: next_move = 1 if data_ingame[next_move] == 1: s += 1 if next_move != 1: time.sleep(2) t = bot_turn(data_cards[next_move * 2 - 2], data_cards[next_move * 2 - 1], data_turn, bet, prev_bet, data_chips[next_move], data_bets[next_move]) if t == 0: for j in range(1, k + 1): if data_bets[j] > data_bets[next_move]: data_ingame[next_move] = 0 a = hand_links[next_move * 2 - 3].create_image( 18, 26, image=image_links_f[next_move * 2 - 3]) b = hand_links[next_move * 2 - 4].create_image( 18, 26, image=image_links_f[next_move * 2 - 4]) else: data_chips[next_move] -= (t - data_bets[next_move]) if t - prev_bet > 0: if t - prev_bet >= bet: bet = t - prev_bet prev_bet = t data_bets[next_move] = t if data_chips[next_move] == 0: data_ingame[next_move] = 2 bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets) + bank_temp)) p_ch.configure(text="Your chips: " + str(data_chips[1])) p_bet.configure(text=str(data_bets[1])) if next_move == 1: if prev_bet != 0 and data_chips[1] > prev_bet * 2: slider.configure(from_=prev_bet * 2, to=data_chips[1]) elif data_chips[1] > prev_bet * 2: slider.configure(from_=blind * 2, to=data_chips[1]) else: slider.configure(from_=data_chips[1], to=data_chips[1]) temporary = -1 t = temporary while t == -1: time.sleep(1) t = temporary temporary = -1 if t == -4: if data_chips[1] <= prev_bet: t = -2 else: t = slider.get() if t == -2: if prev_bet < data_chips[1]: t = prev_bet - data_bets[1] else: t = data_chips[1] if t == -3: for j in range(1, k + 1): if data_bets[j] > data_bets[next_move]: data_ingame[next_move] = 0 else: data_chips[next_move] -= t if t + data_bets[next_move] - prev_bet > 0: if t + data_bets[next_move] - prev_bet >= bet: bet = t + data_bets[next_move] - prev_bet prev_bet = t + data_bets[next_move] data_bets[next_move] += t if data_chips[next_move] == 0: data_ingame[next_move] = 2 bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets) + bank_temp)) p_ch.configure(text="Your chips: " + str(data_chips[1])) p_bet.configure(text=str(data_bets[1])) temp = [] for i in range(1, k + 1): if data_ingame[i] == 1: temp.append(data_bets[i]) temp.sort() if len(temp) > 1: if temp[0] != temp[-1] or temp[0] < prev_bet or temp[ -1] < prev_bet: f = False if len(temp) == 1: if temp[0] < prev_bet: f = False if s < s_players: f = False if data_ingame.count(1) < 2: if len(temp) > 0: if temp[0] == prev_bet: f1 = True bank_temp += sum(data_bets) data_pots = exchange(data_pots, data_bets, data_ingame, k) ############################# RIVER ######################### btn_win_prob_turn.destroy() bank_temp += sum(data_bets) pilImage = Image.open(card_texture[data_cards[k * 2 + 4]]) image5 = ImageTk.PhotoImage(pilImage) imagesprite5 = t5.create_image(42, 53, image=image5) for i in range(1, k + 1): data_ingame[i] = data_pots[0][i] data_reaver = [] data_reaver.extend(data_turn) data_reaver.append(data_cards[k * 2 + 3]) prev_bet = 0 win_p.configure(text="hidden") bet = blind * 2 f = False next_move = dealer_pos data_bets = [0] * (k + 1) s = 0 s_players = data_ingame.count(1) while f == False and f1 == False: f = True next_move = next_move + 1 if next_move == k + 1: next_move = 1 if data_ingame[next_move] == 1: s += 1 if next_move != 1: time.sleep(2) t = bot_reaver(data_cards[next_move * 2 - 2], data_cards[next_move * 2 - 1], data_reaver, bet, prev_bet, data_chips[next_move], data_bets[next_move]) if t == 0: for j in range(1, k + 1): if data_bets[j] > data_bets[next_move]: data_ingame[next_move] = 0 a = hand_links[next_move * 2 - 3].create_image( 18, 26, image=image_links_f[next_move * 2 - 3]) b = hand_links[next_move * 2 - 4].create_image( 18, 26, image=image_links_f[next_move * 2 - 4]) else: data_chips[next_move] -= (t - data_bets[next_move]) if t - prev_bet > 0: if t - prev_bet >= bet: bet = t - prev_bet prev_bet = t data_bets[next_move] = t if data_chips[next_move] == 0: data_ingame[next_move] = 2 bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets) + bank_temp)) p_ch.configure(text="Your chips: " + str(data_chips[1])) if next_move == 1: if prev_bet != 0 and data_chips[1] > prev_bet * 2: slider.configure(from_=prev_bet * 2, to=data_chips[1]) elif data_chips[1] > prev_bet * 2: slider.configure(from_=blind * 2, to=data_chips[1]) else: slider.configure(from_=data_chips[1], to=data_chips[1]) t = temporary temporary = -1 while t == -1: time.sleep(1) t = temporary if t == -4: if data_chips[1] <= prev_bet: t = -2 else: t = slider.get() if t == -2: if prev_bet < data_chips[1]: t = prev_bet - data_bets[1] else: t = data_chips[1] if t == -3: for j in range(1, k + 1): if data_bets[j] > data_bets[next_move]: data_ingame[next_move] = 0 else: data_chips[next_move] -= t if t + data_bets[next_move] - prev_bet > 0: if t + data_bets[next_move] - prev_bet >= bet: bet = t + data_bets[next_move] - prev_bet prev_bet = t + data_bets[next_move] data_bets[next_move] += t if data_chips[next_move] == 0: data_ingame[next_move] = 2 bets_cfg(data_bets) chips_cfg(data_chips) bank.configure(text="BANK: " + str(sum(data_bets) + bank_temp)) p_ch.configure(text="Your chips: " + str(data_chips[1])) temp = [] for i in range(1, k + 1): if data_ingame[i] == 1: temp.append(data_bets[i]) temp.sort() if len(temp) > 1: if temp[0] != temp[-1] or temp[0] < prev_bet or temp[ -1] < prev_bet: f = False if len(temp) == 1: if temp[0] < prev_bet: f = False if s < s_players: f = False if data_ingame.count(1) < 2: if len(temp) > 0: if temp[0] == prev_bet: f1 = True bank_temp += sum(data_bets) data_pots = exchange(data_pots, data_bets, data_ingame, k) data_pots = after_exchange(data_pots, data_bets, data_ingame, k) hand_links = create_hand_links() for i in range(len(hand_links)): if data_pots[0][i // 2 + 2] != 0: imagesprite228 = hand_links[i].create_image( 20, 25, image=image_links[i]) time.sleep(10) for i in range(len(hand_links)): hand_links[i] = card_texture_small[0] data_win = [0] for i in range(1, k + 1): data_win.append(winner(i, data_cards, k)) k_pots = 0 for i in data_pots[1:]: kk = 0 if i.count(0) < k: m = 0 for j in range(1, k + 1): if i[j] == 1: if data_win[j] > m: m = data_win[j] for j in range(1, k + 1): if i[j] == 1: if data_win[j] == m: kk += 1 for j in range(1, k + 1): if i[j] == 1: if data_win[j] == m: data_chips[j] += i[0] // kk t = "Player " + str(j) + " wins " + str( i[0] // kk) + " chips!!!" pilImage = Image.open(card_texture[0]) image1 = ImageTk.PhotoImage(pilImage) imagesprite1 = t1.create_image(42, 53, image=image1) pilImage = Image.open(card_texture[0]) image2 = ImageTk.PhotoImage(pilImage) imagesprite2 = t2.create_image(42, 53, image=image2) pilImage = Image.open(card_texture[0]) image3 = ImageTk.PhotoImage(pilImage) imagesprite3 = t3.create_image(42, 53, image=image3) pilImage = Image.open(card_texture[0]) image4 = ImageTk.PhotoImage(pilImage) imagesprite4 = t4.create_image(42, 53, image=image4) pilImage = Image.open(card_texture[0]) image5 = ImageTk.PhotoImage(pilImage) imagesprite5 = t5.create_image(42, 53, image=image5)