“风险”骰子gam上的列表索引错误

2024-03-28 16:54:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着做一个函数,给出风险游戏中骰子数量的输赢比。你知道吗

对于那些不知道的人来说,在风险中有一个攻击者和防御者,攻击者的最大死亡与防御者的最大死亡相比较,这对每对骰子重复,直到防御者不再有剩余的骰子为止。如果攻击者获胜,防御者损失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)

Tags: 代码gtlen错误result骰子first风险
1条回答
网友
1楼 · 发布于 2024-03-28 16:54:12

for i in m循环中,i的值是m内容,而不是m的索引。在您的示例中,第一次通过该循环im的第一个值,即3,因此您的条件if n[i] > m[i]正在执行if n[3] > m[3]3超出了m的索引范围,因此IndexError。你知道吗

相关问题 更多 >