【发布时间】:2017-02-20 15:48:26
【问题描述】:
我正在尝试为 D&D 制作一个随机字符生成器。到目前为止,我能够根据两个最大的统计数据来决定选择哪个课程,但由于某种原因,我时不时地得不到答案。据我所知,我的代码很好,但我是 python 的初学者。我很想知道为什么它不会总是返回答案以及如何解决它。
data = [str,int,dex,con,wis,cha]
largest = None
second_largest = None
for a in data:
if not largest or a > largest:
if largest:
second_largest = largest
largest = a
if largest == wis and second_largest == cha or largest == cha and second_largest == str or largest == str and second_largest == cha or largest == str and second_largest == int:
print ("PALADIN")
elif largest == str and second_largest == dex or largest == str and second_largest == con or largest == con and second_largest == str:
print ("BARBARIAN")
elif largest == str and second_largest == wis or largest == con and second_largest == wis or largest == wis and second_largest == str or largest == wis and second_largest == con:
print ("CLERIC")
elif largest == int and second_largest == str or largest == int and second_largest == con or largest == con and second_largest == int or largest == wis and second_largest == int:
print ("WIZARD")
elif largest == int and second_largest == dex or largest == dex and second_largest == int or largest == cha and second_largest == wis:
print ("ROGUE")
elif largest == int and second_largest == wis:
print ("DRUID")
elif largest == int and second_largest == cha or largest == con and second_largest == cha or largest == cha and second_largest == int:
print ("SORCERER")
elif largest == dex and second_largest == str:
print ("MONK")
elif largest == dex and second_largest == con or largest == con and second_largest == dex:
print ("FIGHTER")
elif largest == dex and second_largest == wis or largest == wis and second_largest == dex:
print ("RANGER")
elif largest == dex and second_largest == cha:
print ("BARD")
elif largest == cha and second_largest == dex or largest == cha and second_largest == con:
print ("WARLOCK")
【问题讨论】:
-
很难说。您的代码有几个缺陷。你能找出一个输入失败的具体例子吗?尝试提供一个示例,其中包含输入、获得的输入(如果有)和预期输出。此外,请给出
data列表值的一个具体示例。 -
第一个:没有其他声明。第二:从 6 个元素中选择 2 个元素,有 15 个可能的结果。尊重顺序使30种不同的组合(最大和第二大不相等)
-
如果有人想知道是否涵盖了所有可能性(它们是):gist.github.com/minitech/97723bb4ae8d19b3b6b320a4995afb91
-
我认为我对所有 30 种可能性都有潜在的反应。我的问题是,当代码运行时,它时不时地确定并显示统计信息,然后我没有得到应该选择哪个类的响应。响应只是空白然后继续。它给出了大约 7/10 次的响应,但我不知道为什么它不会一直工作。
-
基本调试:
printlargest和second_largest选中后。
标签: python