如何解决python中的分支故事 -我的代码有什么问题?
我是编程和尝试用python创建分支故事程序的新手。据我所知,一切都应该工作,但是由于某种原因,它没有注册输入响应,只是重复了原始响应。 (它不会像应有的那样重写变量“ listo”)。它没有转到故事的下一行(=将“ listo”重写为适当的列表并对其进行操作),而是通过三个选项返回故事的第一行。这是相关代码:
#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])
a4.append([s2,o4,o5,a1,a00])
a5.append([s5,a00])
a6.append([s6,a00])
a00.append([s10,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(input(...))
在这里,您将用户提供的输入转换为整数。
您还可以像这样将代码更改为较短的代码:
x = int(input(...))
listo = listo[4][x - 1]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。