2018-10-29 13:26:23 +01:00
|
|
|
class HighScores(object):
|
|
|
|
|
def __init__(self, scores):
|
|
|
|
|
self.scores = scores
|
|
|
|
|
|
|
|
|
|
def latest(self):
|
|
|
|
|
return self.scores[-1]
|
|
|
|
|
|
2018-12-11 07:30:39 -08:00
|
|
|
def personal_best(self):
|
2018-10-29 13:26:23 +01:00
|
|
|
return max(self.scores)
|
|
|
|
|
|
2018-12-11 07:30:39 -08:00
|
|
|
def personal_top(self):
|
2018-10-29 13:26:23 +01:00
|
|
|
return sorted(self.scores, reverse=True)[:3]
|
|
|
|
|
|
|
|
|
|
def report(self):
|
2018-12-11 07:30:39 -08:00
|
|
|
difference = self.personal_best() - self.latest()
|
2018-10-29 13:26:23 +01:00
|
|
|
result_qualifier = (
|
|
|
|
|
"" if difference <= 0 else "{} short of ".format(difference)
|
|
|
|
|
)
|
|
|
|
|
return "Your latest score was {}. That's {}your personal best!".format(
|
|
|
|
|
self.latest(), result_qualifier
|
|
|
|
|
)
|