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