以下是我遇到的基本想法:我試圖做一個簡單的遊戲,你在一個房間裏,而你有兩個房間分支第一個需要在繼續之前「完成」。我希望第二和第三房間將我原來的True
報表更改爲False
報表,在進行遊戲前需要切換所有報表。如何使函數改變其他函數的True/False語句
從SYS進口出口
def room_1():
print "You're in room one, there are two doors to room 2 and 3."
print "Where do you want to go?"
done_2=True
done_3=True
while True:
move=raw_input("'room 2' or 'room 3'? >")
if move == 'room 2':
room_2()
elif move == 'room 3':
room_3()
else:
print "not a valid answer"
print "You Win!"
exit(0)
def room_2():
print "You finished room 2!"
done_1=False
raw_input('Press button')
room_1()
def room_3():
print "You finished room 3!"
raw_input('press button')
done_3=False
room_1()
room_1()
如何改變done_口供室2和3中? 〜
避免'while while'。 http://stackoverflow.com/a/4557326/59087 – 2013-03-13 16:29:24
您可以從'room_2()'或'room_3()'返回一個值,並將此返回值用作'done_2'或'done_3'變量的值。但是看起來你應該回顧一下軟件架構,以及函數和對象可能有哪些可能的事情。 – bdesham 2013-03-13 16:30:23
如果是我,我會創建一個類來存儲您的done_變量,然後在所有房間函數之間傳遞一個實例。這樣你可以從任何地方編輯它們,因爲它們都只是對實例的引用。 – 2013-03-13 16:31:17