forked from giorgiosironi/python-tdd-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtennis.py
More file actions
35 lines (34 loc) · 1.15 KB
/
tennis.py
File metadata and controls
35 lines (34 loc) · 1.15 KB
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
class Set:
def __init__(self):
self.first = 0
self.second = 0
self.scores = Scores()
def firstScores(self, times=1):
self.first = self.first + times
self._normalizeScores()
def firstScore(self):
return self.scores.scoreName(self.first)
def secondScores(self, times=1):
self.second = self.second + times
self._normalizeScores()
def secondScore(self):
return self.scores.scoreName(self.second)
def winner(self):
if self._isWinning(self.first, self.second):
return 1
if self._isWinning(self.second, self.first):
return 2
return None
def _isWinning(self, winner, loser):
return winner > 3 and winner - loser >= 2
def _normalizeScores(self):
if (self.first == self.scores.maximum() and self.second == self.scores.maximum()):
self.first = self.first - 1
self.second = self.second - 1
class Scores:
def __init__(self):
self.scoreNames = ["0", "15", "30", "40", "A"]
def scoreName(self, index):
return self.scoreNames[index]
def maximum(self):
return 4