-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquicktipp.py
73 lines (59 loc) · 2.11 KB
/
quicktipp.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from tippgenerator649 import TippGenerator649
from tippgenerator550 import TippGenerator550
# Provide lotto tipps (tip) for 6 of 49, german lottery
class Quicktipp:
def __init__(self, tipp_generator = TippGenerator649()):
self.generator = tipp_generator
self.tipps = []
self.skipped = []
self.verbose = 1
self.print_index_numbers = False
# Configure verbosity of "str"
# 0 - no output
# 1 - efficient output
# 2 - output with ascii art
def set_verbose(self, verbose):
self.verbose = verbose
def set_print_index_numbers(self, print_index_numbers):
self.print_index_numbers = print_index_numbers
# Do not test tipps for backlist entries
def set_ignore_blacklist(self, ignore):
self.generator.set_ignore_blacklist(ignore)
def _reset(self):
self.tipps.clear()
self.generator.reset()
# Shuffle and draw numbers
def prepare(self, anzahl):
self._reset()
for i in range(0, anzahl):
self.tipps.append(self.generator.next())
if self.generator.get_skipped():
self.skipped.extend(self.generator.get_skipped())
self.tipps.sort()
self.skipped.sort()
# Get a list of skipped numbers with explanation
def get_skipped(self):
return self.skipped
# Get the prepared tipps
def get(self):
return self.tipps
def __str__(self):
s = ''
if self.verbose > 0:
if self.verbose > 1:
s += "Skipped (%d)\n" % len(self.skipped)
if self.verbose > 1:
for skipped in self.skipped:
s += skipped.str_pretty(self.verbose) + "\n"
s += "Tipps (%d)\n" % len(self.tipps)
nr = 1
for tipp in self.tipps:
if nr > 1:
s += "\n"
if self.verbose > 1:
s += "#%d\n" % nr
elif self.print_index_numbers:
s += "%3d: " % nr
nr += 1
s += tipp.str_pretty(self.verbose)
return s