Я хочу запустить простую программу Die в Python, которая бросает шестигранный кубик 10 раз, но программа не - PullRequest
0 голосов
/ 10 июня 2019

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

Как я уже говорил, я написал цикл for и указал количество раз, когда я хотел, чтобы шестигранный кубик бросил.

import random
class Die():

    def __init__(self):
        self.sides=6

    def roll_die(self):
        dice=random.randint(1,self.sides)
        for dice in range(11):
            print("Rolling "+str(dice))

dice_roll=Die()
print("=========================================================")
dice_roll.roll_die()

выход:

=========================================================
Rolling 0
Rolling 1
Rolling 2
Rolling 3
Rolling 4
Rolling 5
Rolling 6
Rolling 7
Rolling 8
Rolling 9
Rolling 10

Я ожидал, что цикл for в моей симуляции выведет несколько случайных чисел в диапазоне от 1 до 6 раз. Вместо этого он печатал числа по порядку и печатал не только числа в диапазоне от 1 до 6.

Ответы [ 2 ]

1 голос
/ 10 июня 2019

После того, как вы впервые присвоили кости, dice = random.randint(1, self.sides), вы переназначили их в следующей строке. Чтобы исправить эту ошибку, просто измените for dice in range(11): на что-то вроде for i in range(11):

1 голос
/ 10 июня 2019

Напишите свой цикл так:

    for _ in range(10):
        dice=random.randint(1,self.sides)
        print("Rolling "+str(dice))

Вам не нужно иметь переменную в цикле for, если вы только хотите выполнить цикл определенное количество раз без изменения процесса в зависимости от номера итерации.

Чтобы получить разные значения кубиков в каждом цикле, вам нужно вычислить их внутри цикла. У тебя это было снаружи. Вы также переопределяли случайное значение, которое вы поместили в переменную кости, используя то же имя переменной в цикле for.

...