Example #1
0
    def classic(state: GameState) -> Optional[Bet]:
        if len(state.history) == 0:
            return Bet(selection="red", size=1)

        last_round = state.history[-1]
        if last_round.result == RoundResult.LOSS:
            return replace(last_round.bet, size=last_round.bet.size * 2)

        return Bet(selection="red", size=1)
Example #2
0
    def next_bet(state: GameState) -> Optional[Bet]:
        if len(state.history) == 0:
            return Bet(selection=1, size=1)

        last_round = state.history[-1]
        if last_round.result == RoundResult.LOSS:
            if state.round % 15 == 0:
                return replace(state.bet, size=last_round.bet.size * 2)
            else:
                return last_round.bet

        return Bet(selection=1, size=1)
Example #3
0
 def placeBets(self):
     blackOutcome = self.wheel.getOutcomeByName(
         Martingale.BLACK_OUTCOME_NAME)
     amount = 10 * (2**self.lossCount)
     currentBet = Bet(amount, blackOutcome)
     self.table.placeBet(currentBet)
     self.stake -= amount
Example #4
0
 def test_win(self):
     budgetBefore = self.p.budget
     outcome = self.w.getOutcomeByName("0")
     bet = Bet(self.t.minimum, outcome)
     self.p.win(bet)
     self.assertEqual(self.p.budget,
                      budgetBefore + bet.amount * (outcome.odds + 1))
Example #5
0
    def placeBets(self, game):

        # Update table with player's bets

        try:

            #chosenCommand = input("Enter one or several bets, q to stop betting this round.")

            chosenCommand = ""

            while chosenCommand != "q":  # Player can bet as long as he has money

                chosenOutcome = input("Enter outcome to bet on: ")

                chosenOutcome = "Number " + chosenOutcome

                chosenOutcome = game.wheel.getOutcome(chosenOutcome)

                chosenAmount = int(input("Enter amount to bet: "))

                bet = Bet(chosenAmount, chosenOutcome)

                self.table.placeBet(bet)

                self.stake -= bet.amount

                print("Stake left: ", self.stake)

                chosenCommand = input(
                    "Enter q to stop betting, any other key to continue.")

        except KeyboardInterrupt:
            print("Quitting")
            exit()
 def testStakeOnLoseAndWin(self):
     self.assertEqual(self.m.stake, 1000)
     myBet = Bet(10, self.blackOutcome)
     self.m.placeBets()
     self.m.lose(myBet)
     self.assertEqual(self.m.stake, 990)
     self.m.placeBets()
     self.m.win(myBet)
     self.assertEqual(self.m.stake, 990)
     self.m.placeBets()
     self.m.win(myBet)
     self.assertEqual(self.m.stake, 1000)
Example #7
0
 def testIter(self):
     betList = [Bet(30, outcome), Bet(10, outcome), Bet(5, outcome)]
     t = Table(betList)
     for i, el in enumerate(t):
         self.assertEqual(betList[i], el)
Example #8
0
 def testIsValidUnderMinimum(self):
     betList = [Bet(TABLE_MINIMUM - 0.1, outcome)]
     t = Table(betList)
     with self.assertRaises(InvalidBet):
         t.isValid()
Example #9
0
 def testIsValidOverLimit(self):
     betList = [Bet(TABLE_LIMIT + 1, outcome)]
     t = Table(betList)
     with self.assertRaises(InvalidBet):
         t.isValid()
Example #10
0
 def testPlaceBet(self):
     ilegalBet = Bet(TABLE_LIMIT + 1, outcome)
     t = Table()
     with self.assertRaises(InvalidBet):
         t.placeBet(ilegalBet)
Example #11
0
 def testTableInit(self):
     betList = [Bet(30, outcome), Bet(10, outcome)]
     t = Table(betList)
     self.assertCountEqual(t.bets, betList)
Example #12
0
 def win(self, bet: Bet):
     self.stake += bet.winAmont()
     self.lossCount = 0
Example #13
0
 def testLoseAmount(self):
     o = Outcome('red', 1)
     b = Bet(1, o)
     self.assertEqual(b.loseAmount(), 1)
Example #14
0
 def initial_state(initial_units: int = 1000) -> GameState:
     return GameState(initial_units, initial_units, Bet(0, 0), 0, [])
Example #15
0
 def testStr(self):
     betList = [Bet(30, outcome)]
     t = Table(betList)
     self.assertEqual(
         str(t), "Bets list: ['Outcome: red, odds are 1, amount: 30']")
 def testPlaceBets(self):
     self.p57.placeBets()
     self.assertEqual(len(self.t.bets), 1)
     placedBet: Bet = self.t.bets[0]
     self.assertEqual(placedBet.__str__(),
                      Bet(10, self.w.getOutcomeByName('black')).__str__())
 def next_bet(state: GameState) -> Optional[Bet]:
     return Bet(selection=0, size=1)
 def all_in(state: GameState) -> Optional[Bet]:
     return Bet(selection="red", size=state.units)
Example #19
0
 def playBySpecificStrategy(self) -> None:
     blackBet = Bet(10, self.black)
     self.table.placeBet(blackBet)
Example #20
0
 def testWinAmount(self):
     o = Outcome('red', 1)
     b = Bet(1, o)
     self.assertEqual(b.winAmont(), 2)
 def testLossCount(self):
     self.assertEqual(self.m.lossCount, 0)
     self.m.lose(Bet(1, self.blackOutcome))
     self.assertEqual(self.m.lossCount, 1)
Example #22
0
 def testInit(self):
     o = Outcome('red', 1)
     b = Bet(30, o)
     self.assertEqual(type(b), type(Bet(30, o)))
 def testWinLossCountInit(self):
     myBet = Bet(1, self.blackOutcome)
     self.m.lose(myBet)
     self.m.win(myBet)
     self.assertEqual(self.m.lossCount, 0)