1

ユーザーが新しい賭けをするたびに新しい乱数を作成するにはどうすればいいですか?現在は、毎回実行するたびに黒の数字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)) 

     ` 

答えて

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)) 
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') 
ある
関連する問題