Python 2.7 轮盘赌程序将无法识别正确的猜测。为什么?
下面是我正在制作的赌场游戏的轮盘赌部分,但我似乎无法让它正常工作。它无法识别玩家何时选择了正确的号码,我希望有人能告诉我原因。显然,还有一些其他部分还没有完成,但我只是在尝试运行基本功能。另外,我在这方面还很新,所以请随意评论任何其他东西!谢谢Python 2.7 轮盘赌程序将无法识别正确的猜测。为什么?,python-2.7,Python 2.7,下面是我正在制作的赌场游戏的轮盘赌部分,但我似乎无法让它正常工作。它无法识别玩家何时选择了正确的号码,我希望有人能告诉我原因。显然,还有一些其他部分还没有完成,但我只是在尝试运行基本功能。另外,我在这方面还很新,所以请随意评论任何其他东西!谢谢 from random import randint from time import sleep funds = 50 ### Straight Up number bet = 35:1 ### Odd/Even payout = 1:1 c
from random import randint
from time import sleep
funds = 50
### Straight Up number bet = 35:1
### Odd/Even payout = 1:1
class RouletteTable(object):
def __init__(self, wallet):
self.wallet = wallet
def spin(self, bets):
print "Spinning..."
sleep(2)
print "The winner is..."
sleep(1)
winner = 25 #randint(0, 36) #FOR TESTING
print "Number ", winner
if winner in bets == True:
bets = True
return bets
else:
print "You bet on: ", bets
print "Better luck next time."
bets = False
return bets
def game(self):
while self.wallet >= 0:
print "\n\nWelcome to Roulette."
print "Test your luck, and place your bets!"
print "Current funds: $", self.wallet
print "\n(1)Place bet or (2)Exit"
choice = raw_input("> ")
if choice == "1":
bets = []
print '''\n\n\n
__________
[ 0 ]
[ 1][ 2][ 3]
[ 4][ 5][ 6]
[ 7][ 8][ 9]
[10][11][12]
[13][14][15]
[16][17][18]
[19][20][21]
[22][23][24]
[25][26][27]
[28][29][30]
[31][32][33]
[34][35][36]
[ODD] [EVEN]
'''
print "How much will you bet (per number)?"
bet_amount = int(raw_input("> $"))
print "Type a number to bet on, and press Enter."
print "When finished choosing, just press Enter."
while True:
print "Funds: $", self.wallet
print "Current Bets: ", bets
number_choice = raw_input("> ")
if number_choice != "":
bets.append(int(number_choice))
self.wallet -= bet_amount
else:
# start spin
self.spin(bets)
# payout for bets
if bets == True:
print "You win $", bet_amount*35
self.wallet += bet_amount*35
break
if choice == "2":
return self.wallet
break
if self.wallet == 0:
print "You're out of money!\n"
roulette = RouletteTable(funds)
funds = roulette.game()
您的主要错误是:
# start spin
self.spin(bets)
# payout for bets
应改为:
#start spin
bets = self.spin(bets)
# payount bets
下面修改的代码可以正确地执行此操作。用不同的类型覆盖赌注不是好的风格,我建议使用不同的变量。此外,除非在学习过程中进行澄清,否则在下注中获胜不需要明确地与“真”进行比较
希望这对你有所帮助,如果你有进一步的问题,请发表评论-
from random import randint
from time import sleep
funds = 50
### Straight Up number bet = 35:1
### Odd/Even payout = 1:1
class RouletteTable(object):
def __init__(self, wallet):
self.wallet = wallet
def spin(self, bets):
print "Spinning..."
sleep(2)
print "The winner is..."
sleep(1)
winner = 25 #randint(0, 36) #FOR TESTING
print "Number ", winner
if winner in bets:
return True
else:
print "You bet on: ", bets
print "Better luck next time."
return False
def game(self):
while self.wallet >= 0:
print "\n\nWelcome to Roulette."
print "Test your luck, and place your bets!"
print "Current funds: $", self.wallet
print "\n(1)Place bet or (2)Exit"
choice = raw_input("> ")
if choice == "1":
bets = []
print '''\n\n\n
__________
[ 0 ]
[ 1][ 2][ 3]
[ 4][ 5][ 6]
[ 7][ 8][ 9]
[10][11][12]
[13][14][15]
[16][17][18]
[19][20][21]
[22][23][24]
[25][26][27]
[28][29][30]
[31][32][33]
[34][35][36]
[ODD] [EVEN]
'''
print "How much will you bet (per number)?"
bet_amount = int(raw_input("> $"))
print "Type a number to bet on, and press Enter."
print "When finished choosing, just press Enter."
while True:
print "Funds: $", self.wallet
print "Current Bets: ", bets
number_choice = raw_input("> ")
if number_choice != "":
bets.append(int(number_choice))
self.wallet -= bet_amount
else:
# start spin
did_win = self.spin(bets)
# payout for bets
if did_win == True:
ammount = bet_amount*35
self.wallet += ammount
print "You win $", ammount
break
if choice == "2":
return self.wallet
break
if self.wallet == 0:
print "You're out of money!\n"
roulette = RouletteTable(funds)
funds = roulette.game()
如果他们选择了正确的数字,“bet”应该设置为True,如果“bet”为True,则应该给钱。我认为错误在于返回“bet”,但无法使其工作。+1用于发布工作代码、准确的问题描述和规划您的思考过程。啊,谢谢。我知道这是个简单的错误。这是有道理的。也感谢您对变量命名的指导。很高兴它有帮助,请随意标记为正确答案,谢谢。