-
Notifications
You must be signed in to change notification settings - Fork 0
/
game_textbased.py
executable file
·131 lines (117 loc) · 4.56 KB
/
game_textbased.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#v2
from deck import Deck, Main_Deck
class Game:
def __init__(self):
self.draw_pile = Main_Deck()
self.discard_pile = Deck()
self.foundation_1 = Deck()
self.foundation_2 = Deck()
self.foundation_3 = Deck()
self.foundation_4 = Deck()
self.deck_1 = Deck()
self.deck_2 = Deck()
self.deck_3 = Deck()
self.deck_4 = Deck()
self.deck_5 = Deck()
self.deck_6 = Deck()
self.deck_7 = Deck()
self.distribute_cards()
def distribute_cards(self):
self.deck_1.add(self.draw_pile.getremove(0).flip())
self.deck_2.add(self.draw_pile.getremove(0))
self.deck_2.add(self.draw_pile.getremove(0).flip())
for i in range(2):
self.deck_3.add(self.draw_pile.getremove(0))
self.deck_3.add(self.draw_pile.getremove(0).flip())
for i in range(3):
self.deck_4.add(self.draw_pile.getremove(0))
self.deck_4.add(self.draw_pile.getremove(0).flip())
for i in range(4):
self.deck_5.add(self.draw_pile.getremove(0))
self.deck_5.add(self.draw_pile.getremove(0).flip())
for i in range(5):
self.deck_6.add(self.draw_pile.getremove(0))
self.deck_6.add(self.draw_pile.getremove(0).flip())
for i in range(6):
self.deck_7.add(self.draw_pile.getremove(0))
self.deck_7.add(self.draw_pile.getremove(0).flip())
def __repr__(self):
max_len = 0
for deck in [self.deck_1, self.deck_2, self.deck_3, self.deck_4, self.deck_5, self.deck_6, self.deck_7]:
if len(deck) > max_len:
max_len = len(deck)
if len(self.discard_pile) == 0:
discard_1 = '[ Empty ]'
discard_2 = '[ Empty ]'
discard_3 = '[ Empty ]'
elif len(self.discard_pile) == 1:
discard_1 = f'{str(self.discard_pile.get(-1))}'
discard_2 = '[ Empty ]'
discard_3 = '[ Empty ]'
elif len(self.discard_pile) == 2:
discard_1 = f'{str(self.discard_pile.get(-1))}'
discard_2 = f'{str(self.discard_pile.get(-2))}'
discard_3 = '[ Empty ]'
else:
discard_1 = f'{str(self.discard_pile.get(-1))}'
discard_2 = f'{str(self.discard_pile.get(-2))}'
discard_3 = f'{str(self.discard_pile.get(-3))}'
if len(self.foundation_1) == 0:
found_1 = '[ Empty ]'
else:
found_1 = f'{str(self.foundation_1.get(-1))}'
if len(self.foundation_2) == 0:
found_2 = '[ Empty ]'
else:
found_2 = f'{str(self.foundation_2.get(-1))}'
if len(self.foundation_3) == 0:
found_3 = '[ Empty ]'
else:
found_3 = f'{str(self.foundation_3.get(-1))}'
if len(self.foundation_4) == 0:
found_4 = '[ Empty ]'
else:
found_4 = f'{str(self.foundation_4.get(-1))}'
if len(self.deck_1) == 0:
d_1 = '[ Empty ]'
else:
d_1 = f'{str(self.deck_1.get(0))}'
if len(self.deck_2) == 0:
d_2 = '[ Empty ]'
else:
d_2 = f'{str(self.deck_2.get(0))}'
if len(self.deck_3) == 0:
d_3 = '[ Empty ]'
else:
d_3 = f'{str(self.deck_3.get(0))}'
if len(self.deck_4) == 0:
d_4 = '[ Empty ]'
else:
d_4 = f'{str(self.deck_4.get(0))}'
if len(self.deck_5) == 0:
d_5 = '[ Empty ]'
else:
d_5 = f'{str(self.deck_5.get(0))}'
if len(self.deck_6) == 0:
d_6 = '[ Empty ]'
else:
d_6 = f'{str(self.deck_6.get(0))}'
if len(self.deck_1) == 7:
d_7 = '[ Empty ]'
else:
d_7 = f'{str(self.deck_7.get(1))}'
line_1 = f'[ Draw ] {discard_1} {found_1} {found_2} {found_3} {found_4}'
line_2 = f' {discard_2}'
line_3 = f' {discard_3}'
line_4 = f'{d_1} {d_2} {d_3} {d_4} {d_5} {d_6} {d_7}'
lines_end = []
for i in range(max_len-1):
line = ''
for j in [self.deck_1, self.deck_2, self.deck_3, self.deck_4, self.deck_5, self.deck_6, self.deck_7]:
if len(j) >= i + 2:
line += f'{str(j.get(i+1))} '
else:
line += ' '
lines_end.append(line)
lines = [line_1, line_2, line_3, line_4, *lines_end]
return '\n'.join(lines)