def roul(): while True: # import modules dictionary import mods import RouletteMods import time # import saved file information diction = mods.openSaveFile() # players is a dictionary in the form: # Player [num]: [0] player name [1] amount of money players = mods.playerSelect(diction) # This will print the table and all other necessary information print(""" This game is roulette. You may select to place a bet anywhere on the table. To select a certain region, input a value in the menu: |---------------------------------|------| |3|6|9|12|15|18|21|24|27|30|33|36||2 to 1| ----|---------------------------------|------| 0 |2|5|8|11|14|17|20|23|26|29|32|35||2 to 1| ----|---------------------------------|------| |1|4|7|10|13|16|19|22|25|28|31|34||2 to 1| |---------------------------------|------|--| | 1st 12 | 2nd 12 | 3rd 12 | |-------------------------------------------| |1 to 18| EVEN | RED | BLACK | ODD |19 to 26| |-------------------------------------------| 1. Place a bet on a specific number(s) [Inside Bet] 2. Place a bet on a non-specific value but a group of numbers [Outside Bet] Inside Bets: 1.Betting on 1 number (Straight): 35:1 Payout 2.Betting on 2 numbers (Split): 17-1 Payout 3.Betting on 3 numbers (Street): 11-1 Payout 4.Betting on 4 numbers (Square): 8-1 Payout 5.Betting on 6 numbers (Six Line): 5-1 Payout Outside Bets: 1.Betting on either Red or Black: 1-1 Payout 2.Betting on any dozen: 1-1 Payout 3.Betting on 1 to 18 [Low] or 19 to 36 [High]: 1-1 Payout 4.Betting on Odd or Even: 1-1 Payout 5.Betting on 2 to 1 [Columns]: 2-1 Payout """) # Loop this to go through each player. Necessary to call specific key in players dictionary num = 1 bettings = {} while num <= len(players): # This is to loop through the two dictionaries NUMBER and BETS to keep track of bets and how much was bet betCount = 1 bets = {} print("\n\nFor --",players[num][0],'-- :') # if selection is 1, go to insideBet function while True: if players[num][1] == 0: print('Cannot place anymore bets') break selection = mods.valueChecker("Would you like to place an inside or outside bet?:(3 is for no more bets) ", 1, 3, 'i') if selection == 1: while True: # This will go through ask what kind of inside bet # Then, it will return a dictionary # Bets take the form bets[numberOfBet] = [0] betted number [1] amount try: bets.update(RouletteMods.insideBet(players,num,betCount)) except: print('You have no more moola so you can\'t place anymore bets.') break players[num][1] -= bets[betCount][1] betCount+= 1 again = mods.valueChecker('\nAnother inside bet? (1 - Yes, 2 - No)', 1, 2, 'i') if again == 2: break elif selection == 2: while True: # This will go through ask what kind of inside bet # Then, it will return a dictionary # Bets take the form bets[numberOfBet] = [0] betted number [1] amount try: bets.update(RouletteMods.outsideBet(players,num,betCount)) except: print('You have no more moola so you can\'t place anymore bets.') break players[num][1] -= bets[betCount][1] betCount+= 1 again = mods.valueChecker('\nAnother outside bet? (1 - Yes, 2 - No)', 1, 2, 'i') if again == 2: break elif selection == 3: break # to save the bets of player num to a dictionary so bets can be reset bettings[num] = bets # To the next player num += 1 # This will return a random number RESULT = RouletteMods.selectingANumber() print("\nThe ball is now spinning") time.sleep(2) print('\nIt is still spinning') time.sleep(3) print('\nIT STOPPED!') time.sleep(1) print("And.....") time.sleep(2) print(""" The RESULT IS""", RESULT,"\n\n") for playerNum in bettings: bets = bettings[playerNum] lose = 0 for bet in bets: numbers = bets[bet][0] try: if RESULT in numbers: players[playerNum][1] += bets[bet][1] + (bets[bet][1] * bets[bet][2]) lose -= bets[bet][1] * bets[bet][2] else: lose += bets[bet][1] except: if RESULT == numbers: players[playerNum][1] += bets[bet][1] + (bets[bet][1] * bets[bet][2]) lose -= bets[bet][1] * bets[bet][2] else: lose += bets[bet][1] # Prints lose or gains if lose > 0: print("I am sorry", players[playerNum][0],", you lost $",lose) elif lose < 0: print("Congrats",players[playerNum][0],", you won $",-1*lose) else: print("You did not gain anything, or lose anything", players[playerNum][0]) # This will rewrite the saves.file with the new values of money mods.writeToSave(players, diction) selection = mods.valueChecker('Would you like to play roulette again?(1 is Yes, 2 is No)', 1, 2, 'i') if selection == 2: break return
def insideBet(player,num,betCount): # If no cash, cant bet if player[num][1] == 0: print('Insufficient funds') return selection = mods.valueChecker('\n\nWhat kind of inside be would you like to place?', 1, 5, 'i') if selection == 1: numberSelect = mods.valueChecker('What number would you like to bet on?', 0, 36, 'i') bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,35]} elif selection == 2: number1 = mods.valueChecker('Whats the first number you would like to bet on?', 1, 36, 'i') while True: number2 = mods.valueChecker('Whats the second number you would like to bet on?', 1, 36, 'i') # This checks to make sure number2 is next to number1 on the table if number2 == number1 - 1 or number2 == number1 + 1 or number2 == number1 + 3 or number2 == number1 - 3: break # If the second number is not next to the firsrt number, it will print this before looping again. print("Select another number. The second number is not next to the first number!") # This will make it so numberSelect which is returned is a list of the numbers the player selected to bet with numberSelect = [] numberSelect.append(number1) numberSelect.append(number2) # Asks for the bet bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,17]} elif selection == 3: # Initial location selection number1 = mods.valueChecker('Whats the first number you would like to bet on?', 1, 36, 'i') # number2 represents the number that encloses the second number while True: number2 = mods.valueChecker('Whats the second number you would like to bet on?', 1, 36, 'i') # based on what number2 equals, develop the inbetween value if number2 == number1 - 2: number3 = number1 - 1 print('\nThe inbetween number is:',number3) break elif number2 == number1 + 2: number3 = number1 + 1 print('\nThe inbetween number is:',number3) break elif number2 == number1 + 6: number3 = number1 + 3 print('\nThe inbetween number is:',number3) break elif number2 == number1 - 6: number3 = number1 - 3 print('\nThe inbetween number is:',number3) break # If the second number is not next to the firsrt number, it will print this before looping again. print("Select another number. The second number given does not close the street") # This will make it so numberSelect which is returned is a list of the numbers the player selected to bet with numberSelect = [] numberSelect.append(number1) numberSelect.append(number2) numberSelect.append(number3) # Asks for the bet bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,11]} elif selection == 4: while True: number1 = mods.valueChecker('Whats the bottom left corner you would like to bet on of the square?', 1, 32, 'i') if not number1%3 == 0: break else: print('That is an unacceptable position') number2 = number1 + 1 number3 = number1 + 3 number4 = number1 + 4 numberSelect = [] numberSelect.append(number1) numberSelect.append(number2) numberSelect.append(number3) numberSelect.append(number4) # Asks for the bet bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,8]} elif selection == 5: while True: number1 = mods.valueChecker('Whats the bottom left corner you would like to bet on of the double street?', 1, 29, 'i') if not number1%3 == 0: break else: print('That is an unacceptable position') number2 = number1 + 1 number3 = number1 + 3 number4 = number1 + 4 number5 = number1 + 6 number6 = number1 + 7 numberSelect = [] numberSelect.append(number1) numberSelect.append(number2) numberSelect.append(number3) numberSelect.append(number4) numberSelect.append(number5) numberSelect.append(number6) # Asks for the bet bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,5]}
\n\tYou will be able to choose \n\tfrom three games and save \n\tyour winnings (if you win, \n\tthat is) as you play along. ''') # Loops through the entire program select = True while select: print('''\nHere are your options: 1 - Play Roulette 2 - Play Slots 3 - Check all Scores 4 - Create new login 5 - Quit ''') # What does the user want to do select = mods.valueChecker('What would you like to play', 1, 6, 'i') # If 1 go to Roulette2 and run roul if select == 1: Roulette2.roul() # If 2 run the lsots machine program elif select == 2: import random import time import mods # imports diction = mods.openSaveFile()
def outsideBet(player,num,betCount): # Outcomes necessary for defining what are the outside bets numberValues = {0: None, 1: 'r', 2: 'b', 3: 'r', 4: 'b', 5: 'r', 6: 'b', 7: 'r', 8: 'b', 9: 'r', 10: 'b', 11: 'b' , 12: 'r', 13: 'b', 14: 'r', 15: 'b', 16: 'r', 17: 'b', 18: 'r', 19: 'r', 20: 'b', 21: 'r', 22: 'b', 23: 'r', 24: 'b', 25: 'r', 26: 'b', 27: 'r', 28: 'b', 29: 'b', 30: 'r', 31: 'b', 32: 'r', 33: 'b', 34: 'r', 35: 'b', 36: 'r'} # If no cash, can't bet if player[num][1] == '0': print('Insufficient funds') return selection = mods.valueChecker('\n\nWhat kind of outside bet would you like to place?', 1, 5, 'i') if selection == 1: select = mods.valueChecker('Would you like to bet on red or black? (1 - Black, 2 - Red)', 1, 2, 'i') numberSelect = [] if select == 1: for key in numberValues: if numberValues[key] == 'b': numberSelect.append(key) elif select == 2: for key in numberValues: if numberValues[key] == 'r': numberSelect.append(key) bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,1]} elif selection == 2: select = mods.valueChecker('Would you like to bet on which dozen? (1st Dozen - 1, 2nd Dozen - 2, 3rd Dozen - 3)', 1, 3, 'i') numberSelect = [] if select == 1: for nu in range(1,13): numberSelect.append(nu) elif select == 2: for nu in range(13,25): numberSelect.append(nu) elif select == 3: for nu in range(25,37): numberSelect.append(nu) bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,1]} elif selection == 3: select = mods.valueChecker('Would you like to bet low (1 - 18 = 1) or high (19 - 36 = 2)', 1, 2, 'i') numberSelect = [] if select == 1: for nu in range(1,19): numberSelect.append(nu) elif select == 2: for nu in range(19,37): numberSelect.append(nu) bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,1]} elif selection == 4: select = mods.valueChecker('Would you like to bet odd or even (1,2)', 1, 2, 'i') numberSelect = [] if select == 1: for nu in numberValues: if nu == 0: continue if not nu%2 == 0: numberSelect.append(nu) elif select == 2: for nu in numberValues: if nu == 0: continue if nu%2 == 0: numberSelect.append(nu) bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,1]} elif selection == 5: select = mods.valueChecker('Would you like to bet on which column? (First Column:1, Second Column:2, Third Column:3)', 1, 3, 'i') numberSelect = [] if select == 1: for nu in range(1,37,3): numberSelect.append(nu) elif select == 2: for nu in range(2,37,3): numberSelect.append(nu) elif select == 3: for nu in range(3,37,3): numberSelect.append(nu) bet = mods.valueChecker('How much would you like to bet?', 0.01, player[num][1], 'f') return {betCount: [numberSelect ,bet,2]}