Coder Social home page Coder Social logo

trebek / pydealer Goto Github PK

View Code? Open in Web Editor NEW
77.0 77.0 19.0 555 KB

A simple package containing classes/methods for constructing decks of playing cards (standard 'French deck'). Could be used for a CLI game, or even a graphical game as well.

Home Page: http://pydealer.rtfd.org

License: GNU General Public License v3.0

Makefile 6.61% Shell 6.31% Python 87.07%

pydealer's People

Contributors

danielveazey avatar ikeviny avatar pokoli avatar trebek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pydealer's Issues

Can't use pydealer from Python3

I have installed pydealer using pip. It works well using python2. However, when I try to use it using python3, I have the following error:
AttributeError: 'module' object has no attribute 'Deck'
>>> import pydealer
>>> dir(pydealer)
['builtins', 'cached', 'doc', 'file', 'loader', 'name', 'package', path', 'spec']

add __str__, __repr__, __hash__, and __eq__ to Card class

I saw this project /r/python, and it looks really solid. Got a small recommendation: add __str__, __repr__, __hash__, and __eq__ to the Card class. This will allow me to do this:

c = Card('Ace', 'Spades')
print(c)
c2 = Card('Ace', 'Diamonds')
print(c == c2)

I suggest something like this:

def __str__(self):
    return '%s' % (self.name)

def __repr__(self):
    return 'Card(value=%r, suit=%r)' % (self.value, self.suit)

def __hash__(self):
    return hash((self.value, self.suit))

def __eq__(self, other):
    return isinstance(other, Card) and self.value == other.value and self.suit == other.suit

I'm a big fan of implementing these 4 methods for base classes like Card because then I can use them in data structures (set, dict, etc.) without having to worry about unexpected behavior. I can also print a card and print card-related errors and get meaningful information.

Name a random card (without pulling from deck)

I'm trying to simulate some magic tricks and I need a function that just names a random card without dealing it from the deck. Do you have a suggestion for the best way to do this?

A little more detail

  • create deck
  • shuffle deck
  • deal 1 card from deck
  • name and random card and see if it is the same as the dealt card (this is the function I need)

Thanks

Multiple Deck options?

Any thoughts on supporting a multiple deck feature? I'm looking at doing a blackjack sort of simulator, but want to have a dealer that has done a multiple deck shuffle (e.g. double deck BJ, 6 pack, 8 pack, etc).

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.