2014-09-30 6 views
0

Я пытаюсь сделать игру в блэкджек на Python, и я сделал отдельную функцию для каждой опции, чтобы нажать кнопку пребывания и т. Д. Когда я вызываю каждую функцию, я передаю ей общую руку игроков до сих пор: ​ ​ ​Функция возврата, похоже, не работает

def hit(PlayerHand): 
    PlayerCard3 = random.randint(2,10) 
    print("You got %s" %PlayerCard3) 
    PlayerHand = PlayerHand+PlayerCard3 
    return(PlayerHand) 

а потом я печатаю игрокам полную руку за пределами функции, но он возвращает предыдущее значение PlayerHand, а не новое значение. Я не уверен, что делать.

+1

Что делает код, который вызывает эту функцию выглядеть? – dpassage

+3

ваш код работает для меня - держу пари, вы делаете это: PH = 5; удар (PH); напечатайте PH, вместо PH = hit (PH) – Colin

+0

Если 'PlayerHand' ссылается на' int' (извините, но я не знаю Blackjack), вы должны помнить, что 'int' неизменяемы - вы не можете их изменять. Поэтому, когда вы делаете «PlayerHand = PlayerHand + PlayerCard3», вы создаете новый объект 'int', не изменяя существующий. – cdarke

ответ

1

Убедитесь, что вы сохраняете новое значение:

print("New value is: {}".format(hit(PlayerHand))) 

или

PlayerHand=hit(PlayerHand) 
print(PlayerHand) 
Смежные вопросы