1

Wie bekomme ich mein Programm, um eine neue Zufallszahl jedes Mal, wenn der Benutzer eine neue Wette macht, derzeit wird es nur die Zahl schwarz 2 jedes Mal, wenn ich es ausführen. Auch ungerade generierte Zahlen müssen rot und sogar schwarz sein.Code generiert keine neue Nummer für jeden Roulette Spin

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)) 

     ` 

Antwort

0

Wie wäre es mit random.choice() statt 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

sieht es so aus, als ob Sie number in der Schleife überschreiben?

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

Wie wäre es stattdessen?

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

FWIW, eine Art und Weise einfacher Ansatz ist

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