【发布时间】:2020-07-24 16:16:27
【问题描述】:
import random
dealer = random.randint(10, 21)
begin = random.randint(1, 14)
card = random.randint(1, 14)
limit = int(21)
print(begin)
i = input('Hit or Stay?').lower()
while i == "hit":
begin += random.randint(1, 14)
print(begin)
i = input('Hit or Stay?').lower()
if begin == 21:
print('Wow, you win!')
elif i == "stay":
if dealer >= begin:
print('You lose')
print(dealer)
else:
print('You win')
print(dealer)
elif begin >= limit:
print('You lose')
我目前正在尝试制作 21 点二十一点游戏(我自己的转折点)。 但是,我遇到了一个问题。二十一点的规则是,如果你的手牌超过了 21,你就输了。我很难做到这一点。目前,python 只打印“你输了!”当玩家越过数字 21 并保持手牌时。 达到21/获胜时的电流输出:
Starting Hand: 13
Hit or Stay?hit
Current Hand: 15
Hit or Stay?hit
Current Hand: 21
Hit or Stay?stay
Wow, you win!
预期输出:
Starting Hand: 13
Hit or Stay?hit
Current Hand: 21
You Win!!!
超过 21 的电流输出:
Starting Hand: 4
Hit or Stay?hit
Current Hand: 13
Hit or Stay?hit
Current Hand: 24
Hit or Stay?stay
You lose because you went over 21 haha
预期输出:
Starting Hand: 20
Hit or Stay?hit
Current Hand: 25
You lose because you went over 21 hahaha
我希望有人能够修复我的代码:
【问题讨论】:
-
您可以在 for 循环中添加一个条件来检查数字是否为
-
if-else块不应该缩进,所以它会在while块里面吗?
-
我知道你说过这是你自己的二十一点,但你不应该考虑到 A(1 或 11)和面牌都值 10 点吗?另外作为旁注,在您当前的解决方案中,A 被选中的机会比任何其他牌都高。
标签: python python-3.x random while-loop blackjack