二十一点游戏不会在每次每个人抽奖时更新手牌
Blackjack game not updating hands each time everyone draws
我正在尝试制作一款简单的基于文本的 Python 二十一点游戏。游戏知道变量 'hand' 和 'd_hand' 是您的手牌和庄家的手牌,但不会在每张新牌被抽出后更新它。 hand 和 d_hand 被分配给一个介于 1 和 11 之间的随机整数加上您当前的手牌,然后再添加随机数,这在理论上应该意味着每次绘制新牌时您的手牌都会更新。
这是代码:
def draw(hand, d_hand):
x = randint(1, 11)
card = x
hand = x + hand
print("You drew...")
print(card)
y = randint(1, 11)
d_card = y
d_hand = y + d_hand
print("Dealer drew...")
print(d_card)
print("Your hand: ")
print(hand)
print("Dealer's hand: ")
print(d_hand)
ask()
这是所有内容的输出:
(注:我这里只展示一个功能,游戏显然不止我展示的这一个功能。)
Press enter to begin:
You drew...
1
Dealer drew...
5
Your hand:
1
Dealer's hand:
5
Hit or stay? (h/s): h
You drew...
10
Dealer drew...
8
Your hand:
10
Dealer's hand:
8
Hit or stay? (h/s): '''
我不太确定这是什么问题...
顺便说一句,我是这个网站的新手,所以我不能点赞任何评论,所以谢谢大家的回答!
从您发布的代码来看,您似乎不是 return新手。因此,当函数 returns 时,指针将恢复到调用前的任何值。你可以在 python 中 return 像 return (hand,d_hand)
这样的元组,然后像 hand,d_hand = draw(hand,d_hand)
如果 hand
和 d_hand
是列表(或可变对象),
您可能希望通过将 hand = x + hand
替换为 hand.append(x)
来更新对象本身。
否则,您的代码只会创建一个新的本地列表 hand
,该列表将在函数结束时丢失。
我正在尝试制作一款简单的基于文本的 Python 二十一点游戏。游戏知道变量 'hand' 和 'd_hand' 是您的手牌和庄家的手牌,但不会在每张新牌被抽出后更新它。 hand 和 d_hand 被分配给一个介于 1 和 11 之间的随机整数加上您当前的手牌,然后再添加随机数,这在理论上应该意味着每次绘制新牌时您的手牌都会更新。 这是代码:
def draw(hand, d_hand):
x = randint(1, 11)
card = x
hand = x + hand
print("You drew...")
print(card)
y = randint(1, 11)
d_card = y
d_hand = y + d_hand
print("Dealer drew...")
print(d_card)
print("Your hand: ")
print(hand)
print("Dealer's hand: ")
print(d_hand)
ask()
这是所有内容的输出: (注:我这里只展示一个功能,游戏显然不止我展示的这一个功能。)
Press enter to begin:
You drew...
1
Dealer drew...
5
Your hand:
1
Dealer's hand:
5
Hit or stay? (h/s): h
You drew...
10
Dealer drew...
8
Your hand:
10
Dealer's hand:
8
Hit or stay? (h/s): '''
我不太确定这是什么问题...
顺便说一句,我是这个网站的新手,所以我不能点赞任何评论,所以谢谢大家的回答!
从您发布的代码来看,您似乎不是 return新手。因此,当函数 returns 时,指针将恢复到调用前的任何值。你可以在 python 中 return 像 return (hand,d_hand)
这样的元组,然后像 hand,d_hand = draw(hand,d_hand)
如果 hand
和 d_hand
是列表(或可变对象),
您可能希望通过将 hand = x + hand
替换为 hand.append(x)
来更新对象本身。
否则,您的代码只会创建一个新的本地列表 hand
,该列表将在函数结束时丢失。