代码没有为每个轮盘旋转产生新的数字

时间:2017-10-04 20:52:30

标签: python-3.x numbers generated-code roulette-wheel-selection

每次用户进行新赌注时,如何让我的程序创建一个新的随机数,目前每次运行时它只会产生黑色2。奇数生成的数字也必须是红色甚至是黑色。

import random 

def roulette_wheel():
    # opening interface
    print("Welcome to the Roulette Wheel \nYou currently have $100 \nEnter a number 0-36 to bet on a number, -1 to bet on Black, -2 to bet on Red, or -3 to walk away. ")

    #amount of money that the user begins with
    user_flow = 100

    while user_flow >= 1:
        user_bet = input("What will you do:")
        number = random.randint(1,36) 
        for number in (1, 35, 2):
            color = ('red')
        for number in (2, 36,2):
            color = ('black')

        # betting on black
        if user_bet == '-1':
            print("You are betting on black")
            money = int(input("What is your bet:$"))
            print('The result of the spin was', color, number)
            if color == 'black':
                user_flow = 2 * money + user_flow
                print('Congrats! You now have $%d' %(user_flow)) 
            else:
                user_flow = user_flow - money
                print('Sorry! You now have $%d' %(user_flow))

      `

2 个答案:

答案 0 :(得分:0)

如何使用random.choice()代替random.randint()

import random 

def roulette_wheel():
    # opening interface
    print("Welcome to the Roulette Wheel \nYou currently have $100     \nEnter a number 0-36 to bet on a number, -1 to bet on Black, -2 to bet on Red, or -3 to walk away. ")

    #amount of money that the user begins with
    user_flow = 100

    while user_flow >= 1:
        user_bet = input("What will you do:")

        # betting on black
        if user_bet == '-1':
            print("You are betting on black")
        elif user_bet == '-2':
            print("You are betting on red")
        elif user_bet == '-3':
            break # exit here
        else:
            user_bet = int(user_bet)
            print("You are betting on {0}".format(user_bet))

        money = int(input("What is your bet: $"))

        value = random.choice(
            ([1,'red'],
            [2,'black'],
            [35,'red'],
            [36, 'black']))

        color =  value[1]
        number = value[0]

        print('The result of the spin was', color, number)
        if user_bet == '-1' and color == 'black':
            user_flow = 2 * money + user_flow
            print('Congrats! You now have $%d' %(user_flow))
        if user_bet == '-2' and color == 'red':
            user_flow = 2 * money + user_flow
            print('Congrats! You now have $%d' %(user_flow)) 
        if user_bet > 0 and user_bet == number:
            user_flow = 2 * money + user_flow
            print('Congrats! You now have $%d' %(user_flow)) 
        else:
            user_flow = user_flow - money
            print('Sorry! You now have $%d' %(user_flow))

答案 1 :(得分:0)

看起来你在循环中覆盖了number

    number = random.randint(1,36) 
    for number in (1, 35, 2):
        color = ('red')

做以下事情呢?

    number = random.randint(1,36) 
    for value in (1, 35, 2):
        if number == value:
            color = ('red')

fwiw,一种更简单的方法是

    number = random.randint(1,36) 
    if (number%2) = 1:
        color = ('red')
    else:
        color = ('black')