From 22ced967a537fad20d6107adac876bba16bdc143 Mon Sep 17 00:00:00 2001 From: randint Date: Fri, 29 Jan 2016 02:26:44 -0800 Subject: [PATCH 1/4] Add alternate DeckCards solution --- Day1/answers/DeckCardsSC.py | 84 +++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 Day1/answers/DeckCardsSC.py diff --git a/Day1/answers/DeckCardsSC.py b/Day1/answers/DeckCardsSC.py new file mode 100644 index 0000000..2b476cf --- /dev/null +++ b/Day1/answers/DeckCardsSC.py @@ -0,0 +1,84 @@ +import random + +suits = { + "H": "Hearts", + "S": "Spades", + "C": "Clubs", + "D": "Diamonds", +} + +values = { + "A": "Ace", + "2": "Two", + "3": "Three", + "4": "Four", + "5": "Five", + "6": "Six", + "7": "Seven", + "8": "Eight", + "9": "Nine", + "10": "Ten", + "J": "Jack", + "Q": "Queen", + "K": "King", +} + +class Card: + def __init__(self, suit, value): + self.suit = suit + self.value = value + + def getSuit(self): + return self.suit + + def getValue(self): + return self.value + + def __str__(self): + return values.get(self.value) + " of " + suits.get(self.suit) + +class Deck: + def __init__(self): + self.deck = [] + self.dealtCards = [] + + for s in range(4): + suit, value = "", "" + if s == 0: + suit = "H" + elif s == 1: + suit = "S" + elif s == 2: + suit = "C" + elif s == 3: + suit = "D" + for v in range(1, 14): + if v == 1: + value = "A" + elif v <= 10: + value = str(v) + elif v == 11: + value = "J" + elif v == 12: + value = "Q" + elif v == 13: + value = "K" + self.deck.append(Card(suit, value)) + + def dealCard(self): + picked = self.deck[random.randint(0, len(self.deck)) - 1] + print(picked.value, picked.suit) + self.dealtCards.append(picked) + self.deck.remove(picked) + return self.dealtCards[-1] + + def numCardsRemaining(self): + return len(self.deck) + +deck = Deck() + +for card in deck.deck: + print(card) +while deck.deck: + print(deck.dealCard()) +print(deck.deck) \ No newline at end of file From 556ec0e031a71d61b91508b21c1e5cd2fb555596 Mon Sep 17 00:00:00 2001 From: randint Date: Fri, 29 Jan 2016 15:11:32 -0800 Subject: [PATCH 2/4] Improve DeckCards solution --- .gitignore | 3 +++ Day1/answers/DeckCardsSC.py | 44 ++++++++++--------------------------- 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/.gitignore b/.gitignore index c0d8750..6f3930a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # Created by https://www.gitignore.io/api/python +# PyCharm +**/.idea + ### Python ### # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/Day1/answers/DeckCardsSC.py b/Day1/answers/DeckCardsSC.py index 2b476cf..a384f72 100644 --- a/Day1/answers/DeckCardsSC.py +++ b/Day1/answers/DeckCardsSC.py @@ -23,62 +23,42 @@ "K": "King", } + class Card: def __init__(self, suit, value): self.suit = suit self.value = value - def getSuit(self): + def get_suit(self): return self.suit - def getValue(self): + def get_value(self): return self.value def __str__(self): return values.get(self.value) + " of " + suits.get(self.suit) + class Deck: def __init__(self): self.deck = [] self.dealtCards = [] - for s in range(4): - suit, value = "", "" - if s == 0: - suit = "H" - elif s == 1: - suit = "S" - elif s == 2: - suit = "C" - elif s == 3: - suit = "D" - for v in range(1, 14): - if v == 1: - value = "A" - elif v <= 10: - value = str(v) - elif v == 11: - value = "J" - elif v == 12: - value = "Q" - elif v == 13: - value = "K" + for suit in ['H', 'S', 'D', 'C']: + for value in ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']: self.deck.append(Card(suit, value)) - def dealCard(self): - picked = self.deck[random.randint(0, len(self.deck)) - 1] - print(picked.value, picked.suit) - self.dealtCards.append(picked) - self.deck.remove(picked) + def deal_card(self): + self.dealtCards.append(self.deck.pop(random.randint(0, len(self.deck)) - 1)) return self.dealtCards[-1] - def numCardsRemaining(self): + def num_remaining(self): return len(self.deck) -deck = Deck() +deck = Deck() for card in deck.deck: print(card) + while deck.deck: - print(deck.dealCard()) -print(deck.deck) \ No newline at end of file + print(deck.deal_card()) \ No newline at end of file From 2c82930f4544a66fbec8a060cdea782ffafc217d Mon Sep 17 00:00:00 2001 From: randint Date: Fri, 29 Jan 2016 16:43:08 -0800 Subject: [PATCH 3/4] Small improvement to cards solution --- Day1/answers/DeckCardsSC.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Day1/answers/DeckCardsSC.py b/Day1/answers/DeckCardsSC.py index a384f72..eb22ab3 100644 --- a/Day1/answers/DeckCardsSC.py +++ b/Day1/answers/DeckCardsSC.py @@ -41,24 +41,27 @@ def __str__(self): class Deck: def __init__(self): - self.deck = [] + self.cards = [] self.dealtCards = [] for suit in ['H', 'S', 'D', 'C']: for value in ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']: - self.deck.append(Card(suit, value)) + self.cards.append(Card(suit, value)) def deal_card(self): - self.dealtCards.append(self.deck.pop(random.randint(0, len(self.deck)) - 1)) + self.dealtCards.append(self.cards.pop(random.randint(0, len(self.cards)) - 1)) return self.dealtCards[-1] + def num_remaining(self): - return len(self.deck) + return len(self.cards) deck = Deck() -for card in deck.deck: +for card in deck.cards: print(card) -while deck.deck: +print("") + +while deck.cards: print(deck.deal_card()) \ No newline at end of file From 9702074a0d195d5c2dabcc18d18e77ec9505f7e5 Mon Sep 17 00:00:00 2001 From: randint Date: Fri, 5 Feb 2016 14:39:18 -0800 Subject: [PATCH 4/4] Add cardgame --- Day1/answers/cardgame.py | 18 +++++++++++++++++ Day1/answers/{DeckCardsSC.py => cards.py} | 24 +++++++++-------------- 2 files changed, 27 insertions(+), 15 deletions(-) create mode 100644 Day1/answers/cardgame.py rename Day1/answers/{DeckCardsSC.py => cards.py} (72%) diff --git a/Day1/answers/cardgame.py b/Day1/answers/cardgame.py new file mode 100644 index 0000000..3b222ac --- /dev/null +++ b/Day1/answers/cardgame.py @@ -0,0 +1,18 @@ +from cards import * +from math import pow + +print(pow(2, 4)) + +deck = Deck() + +print(deck.deal(1)) +print(len(deck.dealt)) +''' +for card in deck.cards: + print(card) + +print("") + +while deck.cards: + print(deck.deal_card()) +''' \ No newline at end of file diff --git a/Day1/answers/DeckCardsSC.py b/Day1/answers/cards.py similarity index 72% rename from Day1/answers/DeckCardsSC.py rename to Day1/answers/cards.py index eb22ab3..22ebb9a 100644 --- a/Day1/answers/DeckCardsSC.py +++ b/Day1/answers/cards.py @@ -42,26 +42,20 @@ def __str__(self): class Deck: def __init__(self): self.cards = [] - self.dealtCards = [] + self.dealt = [] for suit in ['H', 'S', 'D', 'C']: for value in ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']: self.cards.append(Card(suit, value)) - def deal_card(self): - self.dealtCards.append(self.cards.pop(random.randint(0, len(self.cards)) - 1)) - return self.dealtCards[-1] + def deal(self): + self.dealt.append(self.cards.pop(random.randint(0, len(self.cards)) - 1)) + return self.dealt[-1] + def deal(self, numCards): + for i in range(numCards): + self.dealt.append(self.cards.pop(random.randint(0, len(self.cards)) - 1)) + return self.dealt - def num_remaining(self): + def remaining(self): return len(self.cards) - - -deck = Deck() -for card in deck.cards: - print(card) - -print("") - -while deck.cards: - print(deck.deal_card()) \ No newline at end of file