多项选择故事

时间:2016-01-20 02:18:20

标签: python

我正在尝试制作一个多项选择故事,也称为文字冒险。

以下是迄今为止我所完成的一些例子。

  import time
while True: 
    print ("You awaken with a splitting headache and are very disoriented.")
    time.sleep (2)
    print (" ")
    print ("Slowly standing up you begin to relise you are in a dark corridor with no view of the end on either side")
    time.sleep (2)
    print (" ")
    d1a = input ("Do you want to: A) Go Left. B) Go Right. [left/right]? : ")
    if d1a in ['left', 'right']:
        break
time.sleep (2)
print (" ")
if d1a == "left":
    print ("You slowly edge your way left, going into the dark unknown...") 
elif d1a == "right": 
    print ("You slowly edge your way right, going into the dark unknown...")

我需要帮助的是在一个人回答问题后得到"你慢慢地向右/向左走,走进黑暗未知......"我需要根据他们回答更多文字的方式来做到这一点,并根据他们选择的答案添加更多问题。

3 个答案:

答案 0 :(得分:0)

如果你保留缩进,你可以继续在相关的印刷声明下写作。如果我理解它取决于用户是向左还是向右完全不同的问题将出现?如果类似的问题会出现一段时间,但故事会根据答案的集合而分歧,那么我建议你用变量跟踪答案,然后使用if语句告诉适当的故事分支。如果你把故事简短,这应该可以很好地运作。

对于更复杂的方法,您可以将故事的不同部分(想想章节或房间)放在负责打印相关文本的函数中,查询用户的响应,然后将这些响应报告回主程序循环,然后在转向负责调用故事中的下一个功能。

答案 1 :(得分:0)

你走在正确的道路上。我建议您将输入字符串从"Do you want to: A) Go Left. B) Go Right. [left/right]? : "更改为"Do you want to Go Left or Right. [left/right]? : "

原因是因为用户可能输入A或B,并且您的程序不会将其作为响应。

您可以定义一个将接受字符串的函数,并在该函数中有一个if语句语句,它将打印相应的消息。您还可以在用户进行每次输入后调用许多函数。

而不是打破循环,你可以调用一个函数。

实施例

import time

def goLeft():
    print ("You slowly edge your way left, going into the dark unknown...") 
    ##call another function that will continue the game.

def goRight():
    print ("You slowly edge your way right, going into the dark unknown...")
    ##call another function that will continue the game.

while True: 
    print ("You awaken with a splitting headache and are very disoriented.")
    time.sleep (2)
    print (" ")
    print ("Slowly standing up you begin to relise you are in a dark corridor with no view of the end on either side")
    time.sleep (2)
    print (" ")
    d1a = input ("Do you want to go Left or go Right. [left/right]? : ")

    if d1a == 'left':
        goLeft()
    elif d1a == 'right':
        goRight()
    else:
        print("You died!")
        break

time.sleep (2)

然后,该功能可以将人引导到另一个功能,依此类推。您甚至可以使用一个整数参数,根据用户的转弯次数打印随机消息。 我真的很喜欢你是如何开始的。继续。

答案 2 :(得分:0)

我想你想用某种方法来标记玩家以前的游戏路径?

我会用某些方式说话:

1,使用变量标记以前的答案。

answer1 = "left"
answer2 = "right"

if answer1 == xxx and answer2 == yyy:
   pass

但如果问题数量很大就会变得复杂。

2,根据你最后选择的内容进入一些功能。

def answer2OnLeft():
    pass

def answer2OnRight():
    pass

if answer2 == "left":
    answer2OnLeft()
else:
    answer2OnRight()

这种方式你可以很容易地管理选择和结果的关系,但是你只能链接到最后一个问题及其答案。(也许你可以尝试在函数中添加一个参数上下文来表示前一个答复)

3.在更复杂的情况下,你可以使用状态机。单击下面的链接以获取更多信息。 https://en.wikipedia.org/wiki/Finite-state_machine