Python 切换房间时文本冒险结束出现问题
我有一个文本冒险,在房间切换之间结束。我想我使用的是Python 切换房间时文本冒险结束出现问题,python,loops,text,input,break,Python,Loops,Text,Input,Break,我有一个文本冒险,在房间切换之间结束。我想我使用的是while room='#',这样玩家就可以随时输入。我可以从房间0切换到房间1,但一旦我尝试从房间1切换到房间0,程序就结束了。请帮助完成房间之间的过渡 import os os.system("cls") openleft = '0' openright = '0' openleft = openleft room = '0' lights = '0' drawerclosed = '1' key = '0' unlocked = '0
while room='#'
,这样玩家就可以随时输入。我可以从房间0切换到房间1,但一旦我尝试从房间1切换到房间0,程序就结束了。请帮助完成房间之间的过渡
import os
os.system("cls")
openleft = '0'
openright = '0'
openleft = openleft
room = '0'
lights = '0'
drawerclosed = '1'
key = '0'
unlocked = '0'
tableclose = '0'
open = ("It is already open.")
closed = ("It is already closed.")
shut = ("It is closed shut.")
print(" ")
print("*Stuck? Need Some Help? Try Using Some Commands Like:")
print("Open / Close / Unlock / Enter / Look / Check / ")
print(" ")
print("---------------------------------------------------------------------")
print("Welcome To A Text Adventure")
print("---------------------------------------------------------------------")
print(" ")
print("---------------------------------------------------------------------")
print("The Building")
print("---------------------------------------------------------------------")
print(" ")
print(" ")
print("You awake on the hard floor of a white and empty room.")
print("There are two wooden doors.")
while room == '0':
i = input(">>>")
#Looking Around
if 'look' in i:
print ("You see nothing of importance aside from two doors.")
if 'check' in i:
print ("You see nothing of importance aside from two doors.")
if 'examine' in i:
print("You see nothing of importance aside from two doors.")
#Opening Doors
if 'open' in i:
if 'left' not in i:
if 'right' not in i:
print("Open what?")
if 'open' in i:
if 'left' in i:
if 'right' in i:
print("Pick a single door.")
if 'open' in i:
if 'left' in i:
if 'right' not in i:
if openleft == '0':
print("You open the left door.")
openleft = '1'
else:
print(open)
if 'open' in i:
if 'right' in i:
if 'left' not in i:
if unlocked == '0':
print("You attempt to open the door, but it's locked.")
if unlocked == '1':
if openright == '0':
print("You open the right door.")
openright = '1'
else:
print(open)
#Unlocking Doors
if 'unlock' in i:
if 'right' in i:
if 'left' in i:
print("Pick a single door.")
if 'unlock' in i:
if 'right' not in i:
if 'left' not in i:
print("Unlock what?")
if 'unlock' in i:
if 'right' not in i:
if 'left' in i:
print("It does not have a lock.")
if 'unlock' in i:
if 'right' in i:
if 'left' not in i:
if key == '0':
print("You cannot without a key.")
if key == '1':
if unlocked == '0':
print("You unlock the door.")
unlocked = '1'
if unlocked == '1':
print("It is already unlocked.")
#Locking Doors
if 'lock' in i:
if 'right' in i:
if 'left' in i:
print("Pick a single door.")
if 'lock' in i:
if 'right' not in i:
if 'left' not in i:
print("Lock what?")
if 'lock' in i:
if 'right' not in i:
if 'left' in i:
print("It does not have a lock.")
if 'lock' in i:
if 'right' in i:
if 'left' not in i:
if 'unlock' not in i:
if unlocked == '0':
print("It is already locked.")
if unlocked == '1':
if key == '1':
print("You lock the door.")
unlocked = '0'
else:
print("You cannot without a key.")
#Closing Doors
if 'close' in i:
if 'left' not in i:
if 'right' not in i:
print("Open what?")
if 'close' in i:
if 'left' in i:
if 'right' in i:
print("Pick a single door.")
if 'close' in i:
if 'left' in i:
if 'right' not in i:
if openleft == '0':
print(closed)
else:
print("You close the left door.")
openleft = '0'
if 'close' in i:
if 'right' in i:
if 'left' not in i:
if openright == '0':
print(closed)
else:
print("You close the right door.")
openright = '0'
#Entering Doors
if 'enter' in i:
if 'right' in i:
if 'left' in i:
print("You cannot enter both.")
if 'enter' in i:
if 'right' not in i:
if 'left' not in i:
print("Enter what?")
if 'enter' in i:
if 'right' in i:
if 'left' not in i:
if openright == '0':
print(shut)
if openright == '1':
print("You enter.")
print("There is a large and immediate drop several feet after the door frame.")
room = '2'
if 'enter' in i:
if 'right' not in i:
if 'left' in i:
if openleft == '0':
print(shut)
if openleft == '1':
print("You enter.")
print ("It is a dark room.")
print ("You barely see the light switch next to you.")
room = '1'
if 'go' in i:
if 'right' in i:
if 'left' in i:
print("You cannot enter both.")
if 'go' in i:
if 'right' not in i:
if 'left' not in i:
print("Enter what?")
if 'go' in i:
if 'right' in i:
if 'left' not in i:
if openright == '0':
print(shut)
if openright == '1':
print("You enter.")
room = '2'
if 'go' in i:
if 'right' not in i:
if 'left' in i:
if openleft == '0':
print(shut)
if openleft == '1':
print("You enter.")
print ("It is a dark room.")
print ("You barely see the light switch next to you.")
room = '1'
#If No Actions Are Said
if 'enter' not in i:
if 'open' not in i:
if 'close' not in i:
if 'unlock' not in i:
if 'lock' not in i:
if 'look' not in i:
if 'check' not in i:
if 'go' not in i:
if 'examine' not in i:
print("What?")
while room == '1':
i = input(">>>")
#Lights
if 'switch' in i:
if 'on' in i:
if 'off' not in i:
if 'turn' not in i:
if lights == '1':
print("The lights are already on.")
else:
print("You turn on the lights.")
lights = '1'
tableclose = '0'
if 'switch' in i:
if 'on' not in i:
if 'off' in i:
if 'turn' not in i:
if lights == '0':
print("The lights are already off.")
if lights == '1':
print("You turn off the lights.")
lights = '0'
tableclose = '0'
if 'turn' in i:
if 'on' in i:
if 'off' not in i:
if lights == '1':
print("The lights are already on.")
if lights == '0':
print("You turn on the lights.")
lights = '1'
tableclose = '0'
if 'turn' in i:
if 'off' in i:
if 'on' not in i:
if lights == '0':
print("The light are already off")
if lights == '1':
print("You turn off the lights.")
lights = '0'
tableclose = '0'
#Looking Around
if 'look' in i:
if 'drawer' not in i:
if 'table' not in i:
if lights == '0':
print("It is too dark to see.")
if lights == '1':
print("You see a table in the corner of the room.")
if 'check' in i:
if 'drawer' not in i:
if 'table' not in i:
if lights == '0':
print("It is too dark to see.")
if lights == '1':
print("You see a table in the corner of the room.")
if 'examine' in i:
if 'drawer' not in i:
if 'table' not in i:
if lights == '0':
print("It is too dark to see.")
if lights == '1':
print("You see a table in the corner of the room.")
#Walking Over To table
if 'walk' in i:
if 'table' in i:
if lights == '0':
print("It is too dark to see.")
else:
if tableclose == '1':
print("You are already next to the table")
if tableclose == '0':
print("You walk over to the table.")
tableclose = '1'
if 'go' in i:
if 'table' in i:
if lights == '0':
print("It is too dark to see.")
else:
if tableclose == '1':
print("You are already next to the table")
if tableclose == '0':
print("You walk over to the table.")
tableclose = '1'
#Look At Table
if 'look' in i:
if 'table' in i:
if lights == '0':
print("It is too dark to see.")
else:
if tableclose == '0':
print("From way over here?")
if tableclose == '1':
print("You notice a small drawer on it's underbelly.")
if 'check' in i:
if 'table' in i:
if lights == '0':
print("It is too dark to see.")
else:
if tableclose == '0':
print("From way over here?")
if tableclose == '1':
print("You notice a small drawer on it's underbelly.")
if 'examine' in i:
if 'table' in i:
if lights == '0':
print("It is too dark to see.")
else:
if tableclose == '0':
print("From way over here?")
if tableclose == '1':
print("You notice a small drawer on it's underbelly.")
#Looking At Drawer
if 'look' in i:
if 'drawer' in i:
if lights == '0':
print("It is too dark to see.")
else:
if drawerclosed == '0':
print("You notice a key hidden in the back.")
if drawerclosed == '1':
print("The outside of it looks very nice.")
if 'check' in i:
if 'drawer' in i:
if lights == '0':
print("It is too dark to see.")
else:
if drawerclosed == '0':
print("You notice a key hidden in the back.")
if drawerclosed == '1':
print("The outside of it looks very nice.")
if 'examine' in i:
if 'drawer' in i:
if lights == '0':
print("It is too dark to see.")
else:
if drawerclosed == '0':
print("You notice a key hidden in the back.")
if drawerclosed == '1':
print("The outside of it looks very nice.")
#Opening Drawer
if 'open' in i:
if 'drawer' not in i:
if 'door' not in i:
print("Open what?")
if 'open' in i:
if 'drawer' in i:
if tableclose == '0':
print("From way over here?")
else:
if drawerclosed == '0':
print("It is already open.")
if drawerclosed == '1':
print("You open the drawer.")
drawerclosed = '0'
#Closing Drawer
if 'close' in i:
if 'drawer' in i:
if tableclose == '0':
print("From way over here?")
else:
if drawerclosed == '1':
print("It is already closed.")
if drawerclosed == '0':
print("You close the drawer.")
#Taking Key
if 'take' in i:
if 'key' in i:
if tableclose == '0':
print("Which key?")
else:
if drawerclosed == '1':
print("Which key?")
else:
print("You take the key.")
key = '1'
if 'pick' in i:
if 'up' in i:
if 'key' in i:
if tableclose == '0':
print("Which key?")
else:
if drawerclosed == '1':
print("Which key?")
else:
print("You pick up the key.")
key = '1'
#Opening Door
if 'open' in i:
if 'door' in i:
if 'drawer' not in i:
if openleft == '1':
print("It is already open.")
if openleft == '0':
print("You open the door.")
openleft = '1'
#Closing Door
if 'close' in i:
if 'door' in i:
if 'drawer' not in i:
if openleft == '0':
print("It is already closed.")
if openleft == '1':
print("You close the door.")
openleft = '0'
#Exiting Room
if 'enter' in i:
if 'door' in i:
if openleft == '1':
print("You enter.")
print("There are two wooden doors.")
room = '0'
else:
print(shut)
else:
print("Enter what?")
if 'leave' in i:
if 'room' in i:
if openleft == '1':
print("You enter.")
print("There are two wooden doors.")
room = '0'
else:
print(shut)
else:
print("Leave what?")
if 'exit' in i:
if 'room' in i:
if openleft == '1':
print("You exit.")
print("There are two wooden doors.")
room = '0'
else:
print(shut)
else:
print("Exit what?")
#Remind The Right Door Isn't In The Room
if 'right' in i:
print("The right door is in the other room.")
#If No Actions Are Said
if 'enter' not in i:
if 'open' not in i:
if 'close' not in i:
if 'look' not in i:
if 'check' not in i:
if 'go' not in i:
if 'examine' not in i:
if 'exit' not in i:
if 'take' not in i:
if 'pick' not in i:
if 'up' not in i:
if 'walk' not in i:
if 'turn' not in i:
if 'switch' not in i:
print("What?")
while room == '1':
i = input(">>>")
if 'examine' in i:
if 'ladder' not in i:
print("You notice a rope ladder to your right.")
if 'look' in i:
if 'ladder' not in i:
print("You notice a rope ladder to your right.")
if 'check' in i:
if 'ladder' not in i:
print("You notice a rope ladder to your right.")
您的代码由三个“主循环”组成,如 。。。我猜最后一个应该是
,而room==“2”
这只允许从房间0到房间1再到房间2(可能跳过房间1)的线性进程。任何其他路径都只是结束程序
您需要一个有向循环图结构,它允许您按照图连接从一个房间到另一个房间
“快速修复”将是切换到类似的结构
room = "0"
while True:
if room == "0":
# do stuff
elif room == "1":
# do stuff
elif room == "2":
# do stuff
else:
break
但是你的代码很快就会失控。你需要学会把它分成几部分(函数和类/方法),这样你就可以分别处理每一部分。你的问题真的需要发布477行代码吗?不。但是谁知道呢。。。也许有人会玩它:)也许有人会,一旦你让它正常工作我不想因为一个bug而在大结局之前被卡住,明白了吗。我三天前才开始学习Python。道歉
room = "0"
while True:
if room == "0":
# do stuff
elif room == "1":
# do stuff
elif room == "2":
# do stuff
else:
break