LotteryChecker/lib/Ticket.py

83 lines
2.8 KiB
Python
Raw Normal View History

2022-01-06 01:59:44 +00:00
class Ticket:
def __init__(self, my_picks, my_special_ball):
self.jackpot = 0
self.my_picks = my_picks
self.my_special_ball = my_special_ball
self.winning_numbers = []
self.special_ball = None
2022-01-06 02:49:03 +00:00
self.special_ball_name = 'Special Ball'
2022-01-06 01:59:44 +00:00
self.multiplier = None
self.matched_numbers = []
self.matched_special_ball = None
self.winnings = 0
self.feed = None
def get_jp_amount(self):
self.jackpot = self.feed.get_jackpot()
def get_winning_numbers(self):
winners = self.feed.get_winning_numbers()
self.winning_numbers = winners['numbers']
self.special_ball = winners['special_ball']
self.multiplier = winners['multiplier']
def process_ticket(self):
self.check_numbers()
self.check_special_ball()
self.get_jp_amount()
special_ball_wins = self.get_winnings_with_special_ball(self.jackpot)
non_special_ball_wins = self.get_winnings_without_special_ball()
self.process_winnings(special_ball_wins, non_special_ball_wins)
def check_numbers(self):
2022-12-03 05:05:02 +00:00
# for num in self.my_picks:
# if num in self.winning_numbers:
# self.matched_numbers.append(num)
self.matched_numbers = list(
set(self.my_picks).intersection(set(self.winning_numbers)))
2022-01-06 01:59:44 +00:00
def check_special_ball(self):
self.matched_special_ball = False
if self.special_ball is not None and self.my_special_ball == self.special_ball:
self.matched_special_ball = True
if self.my_special_ball is True and self.special_ball_name == 'Extra':
self.matched_special_ball = True
2022-01-06 01:59:44 +00:00
def process_winnings(self, special_ball_wins, non_special_ball_wins):
wins = non_special_ball_wins
if self.matched_special_ball:
wins = special_ball_wins
self.winnings = wins[self.multiplier][len(self.matched_numbers)]
self.output_ticket()
2022-01-29 05:02:18 +00:00
def get_ticket_winnings(self):
return self.winnings
2022-01-06 01:59:44 +00:00
def output_ticket(self):
2022-01-06 02:49:03 +00:00
special_ball = self.special_ball_name
2022-01-06 01:59:44 +00:00
print(f'Winning Numbers: {self.winning_numbers}')
print(f'Winning {special_ball}: {self.special_ball}')
print(f'Your Numbers: {self.my_picks}')
print(f'Your {special_ball}: {self.my_special_ball}')
print(f'Matched Numbers: {self.matched_numbers}')
2022-12-03 05:05:02 +00:00
print(
f'Matched {special_ball}: '
f'{"True" if self.matched_special_ball else "False"}'
)
2022-01-06 01:59:44 +00:00
if self.winnings > 0:
print(f'Ticket is worth: {self.winnings:,.2f}')
2022-01-06 01:59:44 +00:00
else:
print(f'Not a Winner!')
print()
def get_winnings_with_special_ball(self, jp):
pass
def get_winnings_without_special_ball(self):
pass