2015-11-16 75 views
-3

我是一名新的计算机老师,我在使用此代码时遇到了一些问题。我试图让我的学生用while和if语句创建一个非常简单的游戏。用户输入无法存储在变量中

当我运行这段代码时,它不会接受我输入的y或n,它会一直出现错误。任何想法为什么?

monsterHealth = 20 
playerHealth = 50 

while monsterHealth > 0: 
    print ("The monster attacks you dealing 10 damage") 
    global playerHealth 
    playerHealth = playerHealth - 10 

    playerDecision = input("Would you like to stay and fight? y/n") 

    if playerDecision == y: 
     print ("You attack the monster and do 5 damage") 
    if playerDecision == n: 
     print("You run away with your tail between your legs.") 
     break 


    if playerHealth <= 0: 
     print ("You died......") 
     break 
    if monsterHealth <= 0: 
     print ("You defeated the monster!") 
     break 
+10

我希望有更多的从一台计算机老师..请..“Y”,“N” .. – Maroun

+0

请修复代码的格式。也请修复明显的错误。我希望计算机老师能够做到这一点。 – skyking

+0

你应该阅读你收到的错误,它会告诉你什么是错的。如果你真的不能解决它,*在这里发布错误*,我们将解释它。 –

回答

4

您有可变y可变n比较playerDecision

你应该更改为"y""n"

if playerDecision == "y": 
if playerDecision == "n": 
+0

坦克你我完全忽略了这个!我一直是IT老师,从未接受过任何正式的计算机科学培训,所以我仍然倾向于犯下愚蠢的错误。 –

0
playerDecision = input("Would you like to stay and fight? y/n") 

if playerDecision == 'y': # <-- this should fix it. 
    print ("You attack the monster and do 5 damage") 
if playerDecision == 'n': 
    print("You run away with your tail between your legs.") 
    break  

if playerHealth <= 0: 
    print ("You died......") 
    break 

if monsterHealth <= 0: 
    print ("You defeated the monster!") 
    break 
+3

难道他为什么要休息?他处于一段时间内;休息是正确的,而不是问题。 –

+0

我在程序中没有看到一个while循环。对你来说可能是非常明显的,但我看到人们无故使用休息。 – Maddy

+0

@Mani:'while while monsterHealth> 0:'< - 你没看见这个吗? –

2

你得到的是一个NameError作为变量y没有定义的错误。 你真正想要做的是

if playerDecision == 'y': 
    print ("You attack the monster and do 5 damage") 
if playerDecision == 'n': 
+0

感谢您的回答,这非常有帮助! –

相关问题