-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDice.py
52 lines (36 loc) · 1.38 KB
/
Dice.py
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import random
class Die:
def __init__(self, sides: int=2):
self.sides = sides
self._value: int = 1
@property
def value(self):
return self._value
def roll(self):
random.seed(random.randint(1467, 6504838)*random.randint(157, 6504838))
self._value = random.randint(1, self.sides)
def __int__(self): # pragma: no cover
return int(self._value)
def __eq__(self, value): # pragma: no cover
return self.value == value
def __add__(self, other): # pragma: no cover
return self.value + other
def __radd__(self, other): # pragma: no cover
return self.__add__(other)
def __gt__(self, value): # pragma: no cover
return self._value > value
def __ge__(self, value): # pragma: no cover
return self._value >= value
def __lt__(self, value): # pragma: no cover
return self._value < value
def __le__(self, value): # pragma: no cover
return self._value <= value
def __str__(self): # pragma: no cover
return str(self._value)
def __hash__(self): # pragma: no cover
return hash(self._value)
def __repr__(self): # pragma: no cover
return self._value
class Six_sided_die(Die): # pragma: no cover
def __init__(self):
super().__init__(sides=6)