]> git.armaanb.net Git - lightcards.git/blob - lightcards/deck.py
Fix sidebar showing wrong side of card
[lightcards.git] / lightcards / deck.py
1 # Classes pertaining to the card deck
2 # Armaan Bhojwani 2021
3
4
5 class Card:
6     """Class containing the card information."""
7
8     def __init__(self, inp):
9         self.starred = False
10         self.side = 0
11         self.front = ""
12         self.back = ""
13         if len(inp) >= 1:
14             self.front = inp[0]
15         if len(inp) >= 2:
16             self.back = inp[1]
17
18     def __str__(self):
19         return f"{self.front}, {self.back}"
20
21     def unStar(self):
22         self.starred = False
23
24     def star(self):
25         self.starred = True
26
27     def toggleStar(self):
28         if self.starred:
29             self.starred = False
30         else:
31             self.starred = True
32
33     def printStar(self):
34         if self.starred:
35             return "★ Starred ★"
36         else:
37             return "Not starred"
38
39     def get(self, smart=True):
40         if self.side == 1 and smart:
41             return (self.back, self.front)
42         else:
43             return (self.front, self.back)
44
45     def flip(self):
46         if self.side == 0:
47             self.side = 1
48         else:
49             self.side = 0
50
51     def get_reverse(self):
52         if self.side == 0:
53             return 1
54         else:
55             return 0
56
57
58 class Status:
59     """Keeps track of where in the deck the user is"""
60
61     def __init__(self):
62         self.index = 0
63         self.side = 0
64
65     def forward(self, stack):
66         if self.index != len(stack):
67             self.index += 1
68
69     def back(self):
70         if not self.index < 1:
71             self.index -= 1
72
73     def get_reverse(self):
74         if self.side == 0:
75             return 1
76         else:
77             return 0