2017-02-17 67 views
0

我正在嘗試構建一個基於測試的遊戲,並帶有選擇,並且我想知道是否有方法將選擇發送到特定功能。這是蟒蛇發送選擇到python中的另一個功能

例如:

def main(): 
    choice =input("'n' or 'e'") 
    if choice == 'n': 
      print("You walk north") 
      city() 
    else: 
      print("You starve to death") 
      near_death() 
main() 

def city(): 
    print("You finally made it to the city congrats") 

city() 
def near_death(): 
    print("Right before you black out from hunger you see an old man standing above you") 

near_death() 

反正是有得到的if語句進入它屬於過?

+2

你能澄清你在做什麼嗎?你的描述不是很清楚。預期的投入和產出是什麼? – depperm

+0

定義你的功能之前,你叫你的主。 –

+0

我試圖發送您在IF語句中對函數城所作的選擇,以及您將在else語句中對near_death函數做出的選擇。就像你在「玩」遊戲一樣,你可以在沒有跨越路徑的情況下獲得單獨的成果。 – Linkstus

回答

0

你可以使用一個字典,成員是回調函數

def action1(): 
    print "action1" 
def action2(): 
    print "action2" 
def action3(): 
    print "action3" 
def default(): 
    print "default action" 

def main(): 
    choices = {"a":action1,"b":action2,"c":action3} 
    choice = raw_input("a, b, or c \n") 
    action = choices.get(choice, default) 
    action() 


if __name__ == "__main__": 
    main() 
0

你的意思是這樣的功能呢?

global choice 

def city(choice): 
    if choice =="n": 
     print("You finally made it to the city congrats") 
    elif choice == "e": 
     print("Right before you black out from hunger you see an old man standing above you") 
    else: 
     print("Pick an option") 
     main() 

def main(): 
    choice = input("n or e") 
    city(choice) 

main() 
+0

我認爲這是行。 if語句延續了函數城中的故事,而else語句繼續它在near_death函數中的故事的一部分。 – Linkstus

+0

@Linkstus這個答案給你一個你想要的開始。 onux讓你繼續下去,有更多的功能/路徑選擇等。 – AntonH