文本冒险游戏不读取输入Python

时间:2015-12-09 19:44:22

标签: python

我试图用Python制作文字冒险游戏。虽然我有两个房间编程,东北和东南,我尝试使输入应该决定你去哪里,而不是它只是在两者之间切换,即使你没有输入任何输入。谁能告诉我这里的错误是什么?

name= input('Hello user, Welcome to the alpha! What is your name?')
print ("Welcome "+name+", We've been Expecting you!")
space = {"north": 0, "east": 0}
space["north"] = 1
space["east"]=2
def inst():
    print ("Type 'inv' to access your inventory")
    print ("Your name is "+name)
def move():
    command = input('Where do you want to go?:')
    command= command.lower()
def pie():
    if space["north"]==1 and space["east"]==2:
        print ("You are in the South east corner")
        print ("You can go West or North")
        inst()
        print (space)
        move()
        if "command" == "north" or "n":
            space["north"]=space["north"]+1
            pie()
        elif "command" == "west" or "w":
            space["east"]=space["east"]-1
            pie()
        elif "command" == "inv":
            inv()
        else:
            print ("What?")
            pie()
    elif space["north"]==2 and space["east"]==2:
        print ("You are in the north east corner")
        print ("You can go West or South")
        inst()
        print (space)
        move()
        if "command"== "south" or "S":
            space["north"]=space["north"]-1
            pie()
        elif "command" == "west" or "w":
            space["east"]=space["east"]-1
            pie()
        elif "command" == "inv":
            inv()
        else:
            print ("What?")
            pie()
pie()

更新:谢谢大家的帮助。我只是想让你知道我一直在使用codeacademy,我认为我已经学到了足够的知识。很明显,这段代码是一个wip,但我希望你的建议会更好。

2 个答案:

答案 0 :(得分:0)

您的move()函数不返回值。这里有几个问题,需要更好地理解编程。您的代码中存在致命缺陷。

1)def move()需要返回一个值。

当你打电话时:

command = move()

实际移动功能:

def move()
    command = input('Where do you want to go?:')
    return command.lower()
    # you could just make this whole thing "return input('Where do you want to go?:').lower()"

2)你的每个if语句都应该是:

if command == 'north' or command == 'n':

图案。将命令放在引号中的字面上会询问word命令是否等于单词north或字母n。

这只是一个开始。此代码需要大量工作。查看Codecademy或learncodethehardway。

答案 1 :(得分:0)

一个显而易见的问题是,您在不声明该功能的情况下反复拨打inv()

其次,我建议创建一个包含主要内容的main()函数,比如介绍片段。

要阅读的重要内容是函数,何时使用它们,以及如何利用返回值使代码更具动态性。

最后,我再次提出上述建议。了解基础知识(Codeacademy /艰难学习Python),并逐步使用这些知识来改进您的计划。祝你好运!