Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 41 additions & 2 deletions definitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,12 +197,51 @@ class LuckyScoreType(Enum):
LUCKY = 'lucky'
VERY_LUCKY = 'very lucky'

class RouletteBetType(Enum):
class RouletteNumbers(Enum):
0 = '0'
1 = '1'
2 = '2'
3 = '3'
4 = '4'
5 = '5'
6 = '6'
7 = '7'
8 = '8'
9 = '9'
10 = '10'
11 = '11'
12 = '12'
13 = '13'
14 = '14'
15 = '15'
16 = '16'
17 = '17'
18 = '18'
19 = '19'
20 = '20'
21 = '21'
22 = '22'
23 = '23'
24 = '24'
25 = '25'
26 = '26'
27 = '27'
28 = '28'
29 = '29'
30 = '30'
31 = '31'
32 = '32'
33 = '33'
34 = '34'
35 = '35'
36 = '36'

class RouletteBetType(RouletteNumbers):
RED = 'red'
BLACK = 'black'
GREEN = 'green'
ODD = 'odd'
EVEN = 'even'
NONE = 'none'
HIGH = 'high'
LOW = 'low'
LOW = 'low'
20 changes: 13 additions & 7 deletions src/models/roulette.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,18 +78,27 @@ def play(self, user_id, bet_size, bet_type_arg: str) -> str:
message = self.play_odd_even(user_id, bet_size, bet_type)
case RouletteBetType.HIGH | RouletteBetType.LOW:
message = self.play_high_low(user_id, bet_size, bet_type)
case RouletteNumbers():
message = self.play_number(user_id, bet_size, bet_type)
case RouletteBetType.NONE:
message = "Invalid bet type."
self.save_credits()
return message

def play_number(self, user_id, bet_size, number_enum) -> str:
n = random.choice(self.all_numbers)
result = RouletteBetType(n)
rule = number_enum == int(RouletteNumbers(n))
return self.apply_bet(n, result, user_id, bet_size, rule, payout_multiplier=35)

def play_red_black(self, user_id, bet_size, bet_type) -> str:
n = random.choice(self.all_numbers)
result = RouletteBetType(self.roulette_colors[n])

rule = bet_type == result
special_rule = bet_type == result and RouletteBetType.GREEN == result
return self.apply_bet(n, result, user_id, bet_size, rule, special_rule, payout_multiplier=35)
if RouletteBetType.GREEN == result:
return self.apply_bet(n, result, user_id, bet_size, rule, payout_multiplier=35)
return self.apply_bet(n, result, user_id, bet_size, rule)

def play_odd_even(self, user_id, bet_size, bet_type) -> str:
n = random.choice(self.all_numbers)
Expand All @@ -106,13 +115,10 @@ def play_high_low(self, user_id, bet_size, bet_type) -> str:
winning_rule = bet_type == result
return self.apply_bet(n, result, user_id, bet_size, winning_rule)

def apply_bet(self, n, result, user_id, bet_size, winning_rule, special_rule=False, payout_multiplier=1) -> str:
if special_rule:
def apply_bet(self, n, result, user_id, bet_size, winning_rule, payout_multiplier=1) -> str:
if winning_rule:
self.credits[user_id] += bet_size * payout_multiplier
return f"The ball fell on *{n}*, which is *{result.value}*. Congrats! You won *{bet_size * payout_multiplier} credits* 🔥"
elif winning_rule:
self.credits[user_id] += bet_size
return f"The ball fell on *{n}*, which is *{result.value}*. Congrats! You won *{bet_size} credits* 🔥"
else:
self.credits[user_id] -= bet_size
return f"The ball fell on *{n}*, which is *{result.value}*. You lose your *{bet_size} credits* 🖕"
Expand Down
Loading