我度过了“那些”日子中的一天,而我所看到的一切只是一团糟。

我有一个Die类(如在Dice中),我想滚动100个,并计算每个数字的出现次数。假设100个骰子中有40个是数字“ 6”。

问题是,如果我对if_face == 1种类型的解决方案进行硬编码-如果有人更改了骰子上的面孔数量-我会遇到一个问题-因为它不计算它们。

我认为解决此问题的最佳方法是制作一个列表(与可能的模具表面大小相同),并在每次出现时增加列表中的数字。

简而言之,如何增加每个列表元素内的值?

diceList = [对于范围(100)中的q的Die()]

随机导入

类模具:
    face_value = 1
    大小= 6

    def getSize(self):
        返回self.size

    def getFaceValue(self):
        返回self.face_value

    def roll(个体):
        self.face_value = random.randint(1,self.size)


def rollList(n):
    我= 0

    a = n [0] .getSize()
    faceList = [0] * a

        对于Die in n:
            n [i] .roll()
            x = n [i] .getFaceValue()
            打印(n [i] .face_value)

            #faceList [x-1] = 1 + 1
            #print(faceList)
            我+ = 1




我做了一些重新设计,并且找到了答案的方法-我不确定这是否是一种特别好的方法。

def rollList(n):
    我= 0
    faceList = []
    a = n [0] .getSize()
    对于Die in n:
        n [i] .roll()
        x = n [i] .getFaceValue()
        faceList.append(x)
        我+ = 1

    打印(faceList)

    c = 1
    而> = c:
        打印(faceList.count(c))
        c + = 1

最佳答案

def rollList(n):
    a = n[0].getSize()
    faceList = [0] * a

    for d in n:
        d.roll()
        x = d.getFaceValue()
        faceList[x-1] += 1

10-08 04:36