Skip to content

Commit 22ced96

Browse files
committed
Add alternate DeckCards solution
1 parent 679e43c commit 22ced96

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

Day1/answers/DeckCardsSC.py

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import random
2+
3+
suits = {
4+
"H": "Hearts",
5+
"S": "Spades",
6+
"C": "Clubs",
7+
"D": "Diamonds",
8+
}
9+
10+
values = {
11+
"A": "Ace",
12+
"2": "Two",
13+
"3": "Three",
14+
"4": "Four",
15+
"5": "Five",
16+
"6": "Six",
17+
"7": "Seven",
18+
"8": "Eight",
19+
"9": "Nine",
20+
"10": "Ten",
21+
"J": "Jack",
22+
"Q": "Queen",
23+
"K": "King",
24+
}
25+
26+
class Card:
27+
def __init__(self, suit, value):
28+
self.suit = suit
29+
self.value = value
30+
31+
def getSuit(self):
32+
return self.suit
33+
34+
def getValue(self):
35+
return self.value
36+
37+
def __str__(self):
38+
return values.get(self.value) + " of " + suits.get(self.suit)
39+
40+
class Deck:
41+
def __init__(self):
42+
self.deck = []
43+
self.dealtCards = []
44+
45+
for s in range(4):
46+
suit, value = "", ""
47+
if s == 0:
48+
suit = "H"
49+
elif s == 1:
50+
suit = "S"
51+
elif s == 2:
52+
suit = "C"
53+
elif s == 3:
54+
suit = "D"
55+
for v in range(1, 14):
56+
if v == 1:
57+
value = "A"
58+
elif v <= 10:
59+
value = str(v)
60+
elif v == 11:
61+
value = "J"
62+
elif v == 12:
63+
value = "Q"
64+
elif v == 13:
65+
value = "K"
66+
self.deck.append(Card(suit, value))
67+
68+
def dealCard(self):
69+
picked = self.deck[random.randint(0, len(self.deck)) - 1]
70+
print(picked.value, picked.suit)
71+
self.dealtCards.append(picked)
72+
self.deck.remove(picked)
73+
return self.dealtCards[-1]
74+
75+
def numCardsRemaining(self):
76+
return len(self.deck)
77+
78+
deck = Deck()
79+
80+
for card in deck.deck:
81+
print(card)
82+
while deck.deck:
83+
print(deck.dealCard())
84+
print(deck.deck)

0 commit comments

Comments
 (0)