2013-11-22 6 views
0

Я делаю игру, в которой пользователь катит кубик, это отлично работает, а затем я вычисляю, сколько раз каждое число было свернуто в моей функции countVals, однако оно считается неправильно, оно считает 1 цифру выкл.Счетчик добавляет дополнительную цифру

если кости катится 5,1,3,1,5

Ожидаемый результат подсчета будет 2,0,1,0,2 как он подсчитывает, сколько раз каждая цифра произошло

Фактический результат в настоящее время является 0,2,0,1,0,2

код ниже

for x in range (6): 
    #counter = dice.count(x) 
    print(dice.count(x) 
+0

1. Используйте 'randint (1, 6)', если вы хотите получить результаты с 1 по 6 включительно; 'randrange (1, 6)' дает результаты в 1 до 6 (исключая 6). 2. Ваш 'range (6)' делает 'x' идти от 0 до 5 включительно - это не то, что вы хотите. –

ответ

0
for x in range (6): 

попробовать это:

for x in range (1, 7): 
0

Похоже, что ваши диапазоны выключены (они должны быть полуоткрытыми интервалами).

randrange(1, 7)  # die roll is one of {1,2,3,4,5,6} 

Отсчет должен также перебираем:

for x in range(1, 7): 
     print(dice.count(x)) 
0

Измените диапазон до:

random.randrange(1,7,1) 

Запомнить параметры:

randrange(start, end, step) 

и возвращает значение в диапазоне от [0, конец 1] с определенным шагом.

+0

Лучше использовать 'randint', который включает обе конечные точки. – Blckknght