每个循环后随机数相同

时间:2018-03-29 21:29:59

标签: python python-3.x loops random

我的程序应该为每个卷显示一对骰子,按计划工作。我希望它重复多次,但每次重复它都不再是随机的,只是从第2行和第3行重复分配的数字。如果我滚动2和3,它会重复2和每次都是3次。 我怎样才能使它在每次循环时分配一个新的随机数?

import random
dice1 = random.randrange(1,6)
dice2 = random.randrange(1,6)

... [编辑:]

visualdice_1 =( """
            +-------+
            |       |
            |   *   |
            |       |
            +-------+""")

visualdice_2 =( """
            +-------+
            | *     |
            |       |
            |     * |
            +-------+""")

然后与

联系
def showdice():
#Dice1 Visual Execution
    if dice1 == 1:
        print(visualdice_1)
    if dice1 == 2:
        print(visualdice_2)

def start():
    confirmation = input("Would you like to roll the dice? (Y/N): ")
    if confirmation == "Y" or confirmation == "y":
        print ("You've rolled:",dice1,"and", dice2), showdice()
        return start()
    else:
        print("Goodbye")
start()

2 个答案:

答案 0 :(得分:2)

您在说明中找到了自己的问题:“第2行和第3行的指定号码”。您可以在循环上方指定数字。

相反,将随机数生成器放在循环中,并编辑showdice()函数以将骰子值作为参数:

def showdice(dice):
#Dice1 Visual Execution
    if dice == 1:
        print(visualdice_1)
    if dice == 2:
        print(visualdice_2)
    # I suppose this continues until "if dice == 6"...
    ...

def start():
    dice1 = random.randrange(1,6)
    dice2 = random.randrange(1,6)
    confirmation = input("Would you like to roll the dice? (Y/N): ")
    if confirmation == "Y" or confirmation == "y":
        print ("You've rolled:",dice1,"and", dice2)
        showdice(dice1)
        showdice(dice2)
        return start()
    else:
        print("Goodbye")
start()

否则,它将始终使用您在脚本顶部实例化的相同的随机滚动骰子。

答案 1 :(得分:0)

重新运行:

dice1 = random.randrange(1,6)
dice2 = random.randrange(1,6) 

在打印功能之前。