В настоящее время я создаю игру в блэкджек, используя Python3 в Sublime Text. Когда карты дилеров вытягиваются одна за другой, вы можете видеть, как они вытягиваются одна за другой в консоли, используя after()
для вызова различных функций, но в фактическом GUI все карты появляются одновременно, прямо в конце.
Вот часть кода:
def d_pick_a_card():
global d_hand
global card
global deck
global d_counter
global cvpath
global cardvalue
global d_card_relx
global cv
cardvalue = 0
card = deck.pop(0)
print('Drew',card)
if card == 'J':
cardvalue = 10
cvpath = 11
elif card == 'Q':
cardvalue = 10
cvpath = 12
elif card == 'K':
cardvalue = 10
cvpath = 13
elif card == 'A':
cardvalue = 11
cvpath = 14
else:
cardvalue = card
cvpath = card
d_hand.append(cardvalue)
random.shuffle(deck)
random.shuffle(deck)
d_counter += 1
#THIS IS THE FUNCTION THAT SHOWS THE VISUAL CARD ON THE GUI
def d_pick_vis(cardvalue, d_counter):
global dealers_turn
global card_frame
card_frame = tk.Label(top, image = cv[cvpath])
card_frame.place(relx= d_card_relx[d_counter], rely=.18, anchor='center')
widgetList.append(card_frame)
def dturnfunc():
global dealersturn_img
holding_img1.pack_forget()
dealersturn_img = tk.Label(top, image = dealersturn)
dealersturn_img.img = dealersturnpath
dealersturn_img.pack()
top.after(500, dealers_turn())
def dealers_turn():
global cardvalue
global d_counter
d_pick_a_card()
d_pick_vis(cardvalue, d_counter)
print("The Dealers hand is:", sum(d_hand))
print('\n')
if sum(d_hand) <= sum(hand):
print('Dealer picks again')
top.after(500,dealers_turn_2())
elif sum(d_hand) == 21:
print('Dealer Wins')
elif sum(d_hand) >= 22:
print('You win!')
else:
print('Dealer Wins')