Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的分支故事什么';我的代码怎么了?_Python_Branch - Fatal编程技术网

python中的分支故事什么';我的代码怎么了?

python中的分支故事什么';我的代码怎么了?,python,branch,Python,Branch,我不熟悉编程,并尝试用python创建一个分支故事程序。据我所知,一切都应该正常工作,但由于某种原因,它没有注册输入响应,只是重复了最初的响应。(它没有像应该的那样重写变量'listo'。它没有转到故事中的下一行(=将“listo”重写到适当的列表并对其进行操作),而是返回到故事的第一行,并提供了3个选项。以下是相关代码: #different story lines with their respective options s1= 'You awaken from a sudden nois

我不熟悉编程,并尝试用python创建一个分支故事程序。据我所知,一切都应该正常工作,但由于某种原因,它没有注册输入响应,只是重复了最初的响应。(它没有像应该的那样重写变量'listo'。它没有转到故事中的下一行(=将“listo”重写到适当的列表并对其进行操作),而是返回到故事的第一行,并提供了3个选项。以下是相关代码:

#different story lines with their respective options
s1= 'You awaken from a sudden noise in your tent. An axe is coming straight towards your head.'
s2= 'You be dead.'
s3= 'The creature wielding the axe is thrown off balance by the momentum of his swing'
s4='You manage to parry the weapon away from you, where it sinks through your bed. The creature wielding it falls on top of you, carried by it’s momentum. You grapple with it on the ground trying to gain an advantage.'
s5='You run out of your tent. The entire camp is in a state of chaos. People and more of the creatures are skirmishing all around and a large amount of the camp is on fire. All of the pack animals are running around like headless chickens.'
s6='You take advantage of the creature’s misstep, lift up your small desk and bring it down hard on the creature’s head. It crumples and drops to the ground.'
s7='As you try to gain purchase on it’s throat the creature grabs your hand in its mouth and bites down hard. You feel white hot pain in your arm and black out.'
s8='You push the creature off of you and roll away.'
s9='You grapple in the dirt for something useful and manage to grab a hard oblong object. You stab it into the creature’s face and hear it squeal in agony as you push it off of you and get up. '
s10 = 'goodbye'
#different choices
o1='Roll out of the way'
o2='Try to block it'
o3='Stare at it and hope it goes away.'
o4='Exit program'
o5='Restart story'
o6='Run away'
o7='attack'
o8='Try to strangle it'
o9='Try to get it off of you'
o10='Try to find a weapon'
oo=''

#setting defaults so it wont give me issues:
a2 = []
a3 = []
a4 = []
a5 = []
a6 = []
a00 =[]
#the master lists. [story line, choices[references]]
a1 = [s1,o1,o2,o3,a2,a3,a4]
a2.append([s3,o6,o7,oo,a5,a6])
a3.append([s4,o8,o9,o10,a00,a00,a00])
a4.append([s2,o4,o5,oo,a00,a1,a00])
a5.append([s5,o4,o5,oo,a00,a1,a00])
a6.append([s6,o4,o5,oo,a00,a1,a00])
a00.append([s10,oo,oo,oo,a00,a00,a00])

correct_answers = ['a','b','c']

l = 0
#the program:
listo = a1
print(listo[4])
while True:
    l +=1
    print('\nloop '+ str(l)+ '\n')
    x = input('\n'+str(listo[0])+'\nwhat do you do?: \na.'+str(listo[1])+'\nb.'+str(listo[2])+'\nc.'+str(listo[3])+'\n\nyour choice:')
    print(type(x))
    if x not in correct_answers:
        print('Wrong answer wiseguy, type a lowercase a,b or c.')
        print(x)
        exit()
    if x == 'a':
        print('\ngot this far yall')
        listo = listo[4]
        print('\nreassigned value')
        print(listo)
    elif x == 'b':
        listo = listo[5]
    elif x == 'c':
        listo = listo[6]


任何帮助都将不胜感激,谢谢


编辑:帖子已更改,请参阅注释。

您面临此错误,因为
input()
函数始终返回字符串值。但是,您正在对整数检查
x
。请尝试使用此选项:

x=int(输入(…)
这里,您将用户提供的输入转换为整数

您还可以将代码更改为更短,如下所示:

x=int(输入(…)
listo=listo[4][x-1]

谢谢,我试过了,但一直出现错误“TypeError:int对象不可订阅”。我试着玩它,改变我把它从字符串转换成int的位置,但我无法让它工作。。。还出了什么问题?这一定是因为一旦您将
listo
设置为
listo[4][x-1]
,您就将其设置为整数。您的意思是更改
listo
第四个元素的
x-1
元素的值吗?我的意思是将“listo”更改为不同的列表。它在列表中指向listo[4][x-1]的地方就是我存储新列表名称的地方。我仍然不明白如何修复它。您是否可以共享整个代码?ie包括列表和变量的值。这可能有助于我更好地理解这一点。我现在添加了整个事件的当前版本。为了解决这个问题,我改变了很多事情,但现在我遇到了其他问题。出于某种原因,第50行中的if循环也在筛选正确的答案。(这个:如果x!=“a”或“b”或“c”: