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用于发布工作代码、准确的问题描述和规划您的思考过程。啊,谢谢。我知道这是个简单的错误。这是有道理的。也感谢您对变量命名的指导。很高兴它有帮助,请随意标记为正确答案,谢谢。