我试图用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,但我希望你的建议会更好。
答案 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),并逐步使用这些知识来改进您的计划。祝你好运!