Основная проблема, с которой я столкнулся, - это то, что происходит, когда я выбираю stay
на hand_one
, а затем hit
на hand_two
.Ошибка в игре на блэкджек-стиле python (компьютер)
Вместо того, чтобы просить меня hit or stay
на hand_two
снова, он возвращает меня к hit or stay
на hand_one
, когда я уже выбрал остаться на hand_one, так hand_one не должны иметь больше возможностей. Это вызывает проблемы с несколькими заявлениями о печати и неправильной игрой.
Что не так с моим кодом, что он походит на то, что он обращается к hand_one
.
Полный код здесь: http://labs.codecademy.com/Bjaf/2#:workspace
Вот часть, которая может причиной проблемы.
def hit_or_stay(person):
hit_or_stay = raw_input("Do you want to hit or stay? You can type h or s.")
if hit_or_stay == 'h' or hit_or_stay == 'hit':
deal_one_card(person)
value_of_current_cards(person)
number_value_of_hand()
elif hit_or_stay == 's'or hit_or_stay == 'stay':
print "You stayed"
return
else:
hit_or_stay(person)
def number_value_of_hand():
if number_of_hands > 0:
value_of_hand_one = value_of_current_cards(hand_one)
if value_of_hand_one < 18:
print "\n" "You have %i" % (value_of_hand_one)
hit_or_stay(hand_one)
elif value_of_hand_one > 18:
print "You Lose"
return
elif value_of_hand_one == 18:
print "You hit HOT 18!!!"
return
if number_of_hands > 1:
value_of_hand_two = value_of_current_cards(hand_two)
if value_of_hand_two < 18:
print "\n" "Your second hand has %i" % (value_of_hand_two)
hit_or_stay(hand_two)
elif value_of_hand_two > 18:
print "You Lose"
return
elif value_of_hand_two == 18:
print "You hit HOT 18!!!"
return
number_value_of_hand()
Может ли кто-нибудь понять, почему он возвращается назад, чтобы дать другой вариант ручной работы? И, возможно, как я могу это исправить? Спасибо!
hit_or_stay вызывает number_value_of_hand, который возвращает строку выполнения в начале number_value_of_hand. – M4rtini
Это похоже на классический пример кода, который будет намного проще реализовать в классе – asdf
В функции hit_or_call. добавьте параметр для hand1 \ hand2. Отправьте это обратно на number_value_of_hand и используйте его, чтобы проверить, какая рука для продолжения. – M4rtini