首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“风险”骰子游戏中的列表索引错误

“风险”骰子游戏中的列表索引错误
EN

Stack Overflow用户
提问于 2016-11-15 14:11:51
回答 1查看 78关注 0票数 2

我试图建立一个函数,在风险游戏中给出一卷骰子的输赢率。

对于那些不知道的人,在危险中有攻击者和防御者,攻击者的最大死亡数与防御者的最大死亡数相比较,并且对每一对骰子重复这种情况,直到防御者不再有骰子。如果攻击者获胜,防御者将失去一支军队,如果防御者死亡相等或更大,则攻击者将失去一支军队。

所以如果我运行代码

代码语言:javascript
运行
复制
result([1, 4, 5], [3, 2])

(0, -2)

因为5>3和4>2,攻击者失去了两个。

当我尝试运行我的代码时,我会得到一个列表索引错误,任何帮助修复这个错误都是非常感谢的。

代码语言:javascript
运行
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-15 14:24:04

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40611972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档