python 21点游戏,似乎忽略了“如果”的政治家

2024-06-02 07:17:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试用python制作一个简单的21点游戏,但我似乎被卡住了,我的代码如下:

from random import choice

def deck():
    cards = range(1, 12)
    return choice(cards)

def diack():
    card1= deck()
    card2 = deck()
    hand = card1 + card2
    print hand
    if hand < 21:
         print raw_input("Would you like to hit or stand?")
         if "hit":
             return hand + deck()
         elif "stand": 
             return hand

当我运行时,它似乎对“击中”有效,但当我输入“站”似乎也“击中”。你现在可能已经知道我对编程非常陌生。你们能帮我指出如何让我的游戏工作的正确方向吗(我想尽可能多地使用我的代码)。在


Tags: 代码from游戏returnifdefcardsprint
2条回答

假设缩进正确:

print raw_input("Would you like to hit or stand?")
if "hit":
    return hand + deck()
elif "stand": 
    return hand

您的if只是检查字符串"hit"是否为真。所有非空字符串都为true,"hit"为非空,因此这将始终成功。在

你想要的是这样的:

^{pr2}$

现在检查raw_input的结果是否是字符串"hit",这正是您想要的。在

if "hit"只测试字符串"hit"是否存在,它确实存在。因此,不会执行elif语句。在

您需要捕获变量中的用户输入,然后根据该变量进行测试:

choice = raw_input("Would you like to hit or stand?")
print choice
if choice == "hit":
    return hand + deck()
elif choice == "stand": 
    return hand

相关问题 更多 >