Skip to content

Instantly share code, notes, and snippets.

@TheBlackParrot
Created March 27, 2016 09:02
Show Gist options
  • Save TheBlackParrot/bde02e1b97ef28c50126 to your computer and use it in GitHub Desktop.
Save TheBlackParrot/bde02e1b97ef28c50126 to your computer and use it in GitHub Desktop.
import random;
class Card():
def __init__(self, rank, suit):
self.rank = rank;
self.suit = suit;
def __str__(self):
return self.rank + self.suit;
def __int__(self):
dict = {"2":0, "3":1, "4":2, "5":3, "6":4, "7":5, "8":6, "9":7, "10":8, "J":9, "Q":10, "K":11, "A":12}
return dict[self.rank];
def __eq__(self, other=False):
return str(self) == str(other);
class Deck():
def __init__(self):
suits = ["♠", "♥", "♦", "♣"];
ranks = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"];
deck = [];
for s in range(0, len(suits)):
for r in range(0, len(ranks)):
deck.append(Card(ranks[r], suits[s]));
self.deck = deck;
def __str__(self):
deck = self.deck;
output = "";
for i in range(0, len(deck)):
card = deck[i];
output += str(card) + "\n";
return output.strip();
def __getitem__(self, index):
return self.deck[index];
def __len__(self):
return len(self.deck);
def draw(self, amount):
deck = self.deck;
if amount <= 0:
return;
if amount > len(deck):
# how 2 thro exception
return;
drawn = [];
for i in range(0, amount):
chosen = deck[random.randint(0, len(deck))];
drawn.append(chosen);
self.remove(chosen);
self.deck = deck;
return drawn;
def append(self, card):
if card not in self.deck:
self.deck.append(card);
def remove(self, card):
if card in self.deck:
self.deck.remove(card);
class Stack():
def __init__(self):
self.stack = [];
def __str__(self):
stack = self.stack;
output = "";
for i in range(0, len(stack)):
card = stack[i];
output += str(card) + "\n";
return output.strip();
def __len__(self):
return len(self.stack);
def append(self, cards):
if not cards:
return;
for i in range(0, len(cards)):
self.stack.append(cards[i]);
d = Deck();
s = Stack();
s.append(d.draw(2));
print(s);
print(str(len(d)) + "::" + str(len(s)));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment