2014-02-01 3 views
1

У меня есть один из «тех» дней, и все, что я смотрю, просто испортилось.Увеличение значения внутри элемента списка

У меня есть класс Die (как в Dice), и я хочу перевернуть 100 из них и подсчитать количество каждого числа. Скажем, из 100 кубиков 40 было числом «6».

Проблема в том, что если я жестко задал вопрос, если лицо_значение == 1 тип решения - если кто-то изменит количество лиц на кубике - у меня есть проблема - как они не будут считать их.

Я думал, что лучший способ учесть это - составить список (размер которого совпадает с возможными гранями) и увеличить число внутри списка в каждом случае.

Одним словом, как я могу увеличить значение внутри каждого элемента списка?

diceList = [ Die() for q in range(100)]
 
import random 

class Die: 
    face_value = 1 
    size = 6 

    def getSize(self): 
     return self.size 

    def getFaceValue(self): 
     return self.face_value 

    def roll(self): 
     self.face_value = random.randint(1, self.size) 
 
def rollList(n): 
    i = 0 

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

     for Die in n: 
      n[i].roll() 
      x = n[i].getFaceValue() 
      print(n[i].face_value) 

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

Я переработал его немного, и у меня есть способ получить ответ - я не уверен, если это особенно хороший способ делать это все же.

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

    print(faceList) 

    c = 1 
    while a >= c: 
     print(faceList.count(c)) 
     c += 1 

ответ

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

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

Я изо всех сил, потому что я поставил faceList [х-1] = 1 + = 1 вместо faceList [х-1] + = 1. Спасибо, очень много :) – Ollie

Смежные вопросы