Skip to content

Instantly share code, notes, and snippets.

@imontantes
Created October 3, 2012 18:54
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save imontantes/3828998 to your computer and use it in GitHub Desktop.
Save imontantes/3828998 to your computer and use it in GitHub Desktop.
Slot Machine in Python
import random
print('''Welcome to the Slot Machine Simulator
You'll start with $50. You'll be asked if you want to play.
Answer with yes/no. you can also use y/n
No case sensitivity in your answer.
For example you can answer with YEs, yEs, Y, nO, N.
To win you must get one of the following combinations:
BAR\tBAR\tBAR\t\tpays\t$250
BELL\tBELL\tBELL/BAR\tpays\t$20
PLUM\tPLUM\tPLUM/BAR\tpays\t$14
ORANGE\tORANGE\tORANGE/BAR\tpays\t$10
CHERRY\tCHERRY\tCHERRY\t\tpays\t$7
CHERRY\tCHERRY\t -\t\tpays\t$5
CHERRY\t -\t -\t\tpays\t$2
''')
#Constants:
INIT_STAKE = 50
ITEMS = ["CHERRY", "LEMON", "ORANGE", "PLUM", "BELL", "BAR"]
firstWheel = None
secondWheel = None
thirdWheel = None
stake = INIT_STAKE
def play():
global stake, firstWheel, secondWheel, thirdWheel
playQuestion = askPlayer()
while(stake != 0 and playQuestion == True):
firstWheel = spinWheel()
secondWheel = spinWheel()
thirdWheel = spinWheel()
printScore()
playQuestion = askPlayer()
def askPlayer():
'''
Asks the player if he wants to play again.
expecting from the user to answer with yes, y, no or n
No case sensitivity in the answer. yes, YeS, y, y, nO . . . all works
'''
global stake
while(True):
answer = input("You have $" + str(stake) + ". Would you like to play? ")
answer = answer.lower()
if(answer == "yes" or answer == "y"):
return True
elif(answer == "no" or answer == "n"):
print("You ended the game with $" + str(stake) + " in your hand.")
return False
else:
print("wrong input!")
def spinWheel():
'''
returns a random item from the wheel
'''
randomNumber = random.randint(0, 5)
return ITEMS[randomNumber]
def printScore():
'''
prints the current score
'''
global stake, firstWheel, secondWheel, thirdWheel
if((firstWheel == "CHERRY") and (secondWheel != "CHERRY")):
win = 2
elif((firstWheel == "CHERRY") and (secondWheel == "CHERRY") and (thirdWheel != "CHERRY")):
win = 5
elif((firstWheel == "CHERRY") and (secondWheel == "CHERRY") and (thirdWheel == "CHERRY")):
win = 7
elif((firstWheel == "ORANGE") and (secondWheel == "ORANGE") and ((thirdWheel == "ORANGE") or (thirdWheel == "BAR"))):
win = 10
elif((firstWheel == "PLUM") and (secondWheel == "PLUM") and ((thirdWheel == "PLUM") or (thirdWheel == "BAR"))):
win = 14
elif((firstWheel == "BELL") and (secondWheel == "BELL") and ((thirdWheel == "BELL") or (thirdWheel == "BAR"))):
win = 20
elif((firstWheel == "BAR") and (secondWheel == "BAR") and (thirdWheel == "BAR")):
win = 250
else:
win = -1
stake += win
if(win > 0):
print(firstWheel + '\t' + secondWheel + '\t' + thirdWheel + ' -- You win $' + str(win))
else:
print(firstWheel + '\t' + secondWheel + '\t' + thirdWheel + ' -- You lose')
play()
@Aareon
Copy link

Aareon commented Dec 14, 2015

Instead of;
if(answer == "yes" or answer == "y"):

Do;
if answer.lower() in ['yes',y']

@land-pack
Copy link

I run it on python 2 ,it's need to modify the 43 line (input -> raw_input)

@bembeng01
Copy link

print

@newtondapash
Copy link

what happens when player wants to play with more than 50
again does the balance go bellow 50 and if yes what happens

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment