为学校创建老虎机

时间:2016-08-29 07:38:46

标签: python

我正在为学校编程一台老虎机,一旦完成就无法让机器重新运行。我比较新,想要一些诚实的反馈。如何让我的程序重新运行?这是我正在尝试使用的代码。我刚刚修改了我的代码,看起来像这样。

import random 
import sys


print "Hi there user, welcome to the amazing poker machine simulator."
print "Your opening account has in it $1000."
print "To win a jackpot, three leprachauns must be in a row."
print "Enter yes or no when prompted to finish or continue the program."

balance = 1000
balance == int(balance)
winnings = 0
winnings == int(winnings)

Symbols = ["Leprachaun", "Goldbar", "Pyramid", "Blackcat"]

# Subroutines:  Checking the Bet input and amount
def betcheck(betamount):
    if betamount.isdigit() == True:
        betamount == int(betamount)
        rightbet = True
    else: 
        rightbet = False
        print "Please enter a whole number, no decimals and a bet on or below the balance."
    return rightbet

# Limiting the bet
def betlimit(betamount):
    if betamount > balance == False:
        goodlimit = False
        print "That bet is too high!"
    else:
        goodlimit = True
    return goodlimit

# Checking the 'Ask' input to play the machine.
def askinputcheck(answerinput):
    if answerinput == "Yes" or answerinput == "yes" or answerinput == "y" or answerinput == "No" or answerinput == "no" or answerinput == "n":
        rightanswerinput = True
    else:
        rightanswerinput = False
        print "This is an incorrect input, please type an appropriate answer in."
    return rightanswerinput

# Printing and sorting symbols.
def spinning(reels):
    global balance
    if reelone == "Leprachaun" and reeltwo == "Leprachaun" and reelthree == "Leprachaun":
        winnings = int(betamount) + int(balance) * 1000
        print "You won the jackpot! Congragulations! This is how much your account contains $", winnings
    elif reelone == "Goldbar" and reeltwo == "Goldbar" and reelthree == "Goldbar":
        winnings = int(betamount) + int(balance) * 500
        print "You won a considerable return! Awesome! Your balance and wins are $", winnings
    elif reelone == "Pyramid" and reeltwo == "Pyramid" and reelthree == "Pyramid":
        winnings = int(betamount) + int(balance) * 250
        print "You won a good return! Its a conspiracy! This is all of your money total $", winnings
    elif reelone == "Blackcat" and reeltwo == "Blackcat" and reelthree == "Blackcat":
        winnings = int(balance) - int(betamount)
        print "Unfortunately you didn't win anything, bad luck! You rewards are $", winnings
    else:
        winnings = int(balance) - int(betamount)
        print "Bad luck! Maybe next time you'll win! Your remaining cash is $", winnings
        print winnings
    return reels

# If you have no money
def rebalance(balance):        
    while balance == 0 == True and startagain == True:
        unbalance = True
        balance = 1000
        print "You ran out of money, here is $1000"
    else:
        unbalance = False
        print "You still have money."
        return unbalance

# Leads to Bet input check. 
Validbet = False
while Validbet == False:
    betamount = raw_input("Please enter amount you wish to bet: ")
    Validbet = betcheck(betamount)

betamount == int(betamount)

# Leads to betlimit
appropriatelimit = betlimit(betamount)

# RandomSymbolGen + 3 reels
reelone = random.sample(["Leprachaun", "Goldbar", "Goldbar", "Pyramid", "Pyramid", "Pyramid", "Blackcat", "Blackcat", "Blackcat", "Blackcat"],1)
reeltwo = random.sample(["Leprachaun", "Goldbar", "Goldbar", "Pyramid", "Pyramid", "Pyramid", "Blackcat", "Blackcat", "Blackcat", "Blackcat"],1)
reelthree = random.sample(["Leprachaun", "Goldbar", "Goldbar", "Pyramid", "Pyramid", "Pyramid", "Blackcat", "Blackcat", "Blackcat", "Blackcat"],1)

reels = [reelone, reeltwo, reelthree]

slotspin = spinning(reels)

print reels

# Leads to Ask input check. (At the bottom due to program order)
validask = False
while validask == False:
    answerinput = raw_input("Would you like to play again?: ")
    validask = askinputcheck(answerinput)

# Leads to restart    
startagain = False
while startagain == False:
    startagain = answerinput

while True: 
    if answerinput == "Yes" or answerinput == "yes" or answerinput == "y":
        startagain = True
        balance = int(winnings) + int(balance)
        print "You have $", balance
        pass
    elif answerinput == "No" or answerinput == "no" or answerinput == "n":
        startagain = False
        balance = winnings
        print "You ended the game with", balance
        break
    else:
        print "This is an incorrect input, please answer yes or no."


# Leads to rebalance
if answerinput == "Yes" or answerinput == "yes" or answerinput == "y" and balance == 0:
    balance = rebalance(balance)

1 个答案:

答案 0 :(得分:0)

有一些业余时间,我修改了你的代码 您提供的代码充满了小编码和逻辑错误。您最好在原始代码和下面的代码之间运行diff命令,以查看许多差异的位置,并且无法保证现在也没有错误。
我希望你不打算逃避同学,rebalance例行公事是未来贷款鲨鱼的扭曲工作。 ;)

import random 

print "Hi there user, welcome to the amazing poker machine simulator."
print "Your opening account has in it $1000."
print "To win a jackpot, three leprachauns must be in a row."
print "Enter yes or no when prompted to finish or continue the program."

balance = 1000


Symbols = ["Leprachaun", "Goldbar", "Pyramid", "Blackcat"]

# Subroutines:  Checking the Bet input and amount
def betcheck(betamount):
    if betamount.isdigit() == True:
        betamount == int(betamount)
        rightbet = True
    else: 
        rightbet = False
        print "Please enter a whole number, no decimals and a bet on or below the balance."
    return rightbet

# Limiting the bet
def betlimit(betamount):
    if betamount > balance:
        goodlimit = balance
        print "That bet is too high! - bet adjusted to ", goodlimit
    else:
        goodlimit = betamount
    return goodlimit

# Checking the 'Ask' input to play the machine.
def askinputcheck(answerinput):
    if answerinput.lower().startswith('y') or answerinput.lower().startswith("n"):
        rightanswerinput = True
    else:
        rightanswerinput = False
        print "This is an incorrect input, please type an appropriate answer in."
    return rightanswerinput

# Printing and sorting symbols.
def spinning(reels, betamount):
    reelone, reeltwo, reelthree = reels[0], reels[1], reels[2]
    global balance
    winnings = 0
    if reelone == "Leprachaun" and reeltwo == "Leprachaun" and reelthree == "Leprachaun":
        winnings = int(betamount) * 10 + int(balance)
        print "You won the jackpot! Congragulations! This is how much your account contains $", winnings
    elif reelone == "Goldbar" and reeltwo == "Goldbar" and reelthree == "Goldbar":
        winnings = int(betamount) *5 + int(balance)
        print "You won a considerable return! Awesome! Your balance and wins are $", winnings
    elif reelone == "Pyramid" and reeltwo == "Pyramid" and reelthree == "Pyramid":
        winnings = int(betamount) *2 + int(balance)
        print "You won a good return! Its a conspiracy! This is all of your money total $", winnings
    elif reelone == "Blackcat" and reeltwo == "Blackcat" and reelthree == "Blackcat":
        winnings = int(balance) - int(betamount)
        print "Unfortunately you didn't win anything, bad luck! You rewards are $", winnings
    else:
        winnings = int(balance) - int(betamount)
        print "Bad luck! Maybe next time you'll win! Your remaining cash is $", winnings
    balance = winnings
    return reels

# If you have no money
def rebalance(startagain):
    global balance
    if balance < 1 and startagain == True:
        unbalance = True
        balance = 1000
        print "You ran out of money, here is $1000"
    else:
        unbalance = False
        print "You still have money."
    return unbalance

# Leads to Bet input check. 
def my_mainloop():
    global balance
    while True:
        Validbet = False
        while Validbet == False:
            betamount = raw_input("Please enter amount you wish to bet: ")
            Validbet = betcheck(betamount)

        betamount = int(betamount)
        # Leads to betlimit
        betamount = betlimit(betamount)

        # RandomSymbolGen + 3 reels
        if betamount > 0:
            reelone = random.sample(["Leprachaun", "Goldbar", "Goldbar", "Pyramid", "Pyramid", "Pyramid", "Blackcat", "Blackcat", "Blackcat", "Blackcat"],1)
            reeltwo = random.sample(["Leprachaun", "Goldbar", "Goldbar", "Pyramid", "Pyramid", "Pyramid", "Blackcat", "Blackcat", "Blackcat", "Blackcat"],1)
            reelthree = random.sample(["Leprachaun", "Goldbar", "Goldbar", "Pyramid", "Pyramid", "Pyramid", "Blackcat", "Blackcat", "Blackcat", "Blackcat"],1)

            reels = [reelone, reeltwo, reelthree]
            print "\n",reels,"\n"
            slotspin = spinning(reels, betamount)


        # Leads to Ask input check. (At the bottom due to program order)
        validask = False
        while validask == False:
            answerinput = raw_input("\nWould you like to play again?: ")
            validask = askinputcheck(answerinput)

        if answerinput.lower().startswith("y"):
            startagain = True
            print "You have $", balance
        elif answerinput.lower().startswith("n"):
            startagain = False
            print "You ended the game with", balance
            break
        else:
            print "This is an incorrect input, please answer yes or no."

            # Leads to rebalance
        if answerinput.lower().startswith("y") and balance < 1:
            rebalance(startagain)

if __name__ == "__main__":
    my_mainloop()