Согласно моему пониманию, когда я должен запустить цикл while в основном теле и вызвать функцию hit_or_stand (колода, рука), код должен выполняться бесконечно много раз вокруг цикла while (в функции), когда я выбираю h, но к моему удивлению следующий код работает следующим образом:
1- Asks for h or s ?
I type h
2- show_some(player_hand,dealer_hand)
3-if player_hand.value > 21:
player_busts(player_hand,dealer_hand,player_chips)
break
Вам не кажется, что код должен выполняться бесконечно около 1-го шага, поскольку я всегда выбираю h, и, насколько я понимаю, он должен оставаться в цикле функции hit_or_stand ().
def hit_or_stand(deck,hand):
global playing
while True:
x = input("Would you like stand or hit? Enter 'h' or 's'")
if x[0].lower() == 'h':
hit(deck,hand)
elif x[0].lower() == 's':
print("player stands. Dealer is playing. ")
playing = False
else:
print("Sorry, please try again.")
continue
break
Основная часть
while playing: # recall this variable from our hit_or_stand function
hit_or_stand(deck,player_hand)
show_some(player_hand,dealer_hand)
#if player hand exceeds 21, run player busts() and break out of the loop
if player_hand.value > 21:
player_busts(player_hand,dealer_hand,player_chips)
break