我试着做一个函数,给出风险游戏中骰子数量的输赢比。你知道吗
对于那些不知道的人来说,在风险中有一个攻击者和防御者,攻击者的最大死亡与防御者的最大死亡相比较,这对每对骰子重复,直到防御者不再有剩余的骰子为止。如果攻击者获胜,防御者损失1支军队,如果防御者死亡等于或大于,攻击者损失1支军队。你知道吗
所以如果我运行代码
result([1, 4, 5], [3, 2])
(0, -2)
攻击者因为5>;3和4>;2失去了两个。你知道吗
当我试着运行我的代码时,我得到了一个列表索引错误,任何修复错误的帮助都是非常感谢的。你知道吗
def result(n,m):
first=0
second=0
n=(sorted(n))[::-1]
m=(sorted(m))[::-1]
while len(n)>len(m):
n = n[:-1]
while True:
for i in m:
if n[i] > m[i]:
second -= 1
elif n[i] <= m[i]:
first -= 1
else:
break
return (first,second)
在
for i in m
循环中,i
的值是m
的内容,而不是m
的索引。在您的示例中,第一次通过该循环i
是m
的第一个值,即3,因此您的条件if n[i] > m[i]
正在执行if n[3] > m[3]
。3
超出了m的索引范围,因此IndexError
。你知道吗相关问题 更多 >
编程相关推荐