Skip to main content

A test project using nbdev

Project description

nbdev_cards

A deck of cards demo of nbdev based on ideas from “Think Python 2nd Edition” by Allen B. Downey.

pip install

The nbdev-cards2022 package was uploaded to PyPI and can be easily installed using the below command.

pip install nbdev-cards2022

conda install

The nbdev-cards2022 was also uploaded to Anaconda and can be installed using the below command.

conda install -c hdocmsu nbdev-cards2022

How to use

import the card and deck modules

from nbdev_cards.card import *
from nbdev_cards.deck import *

This lib provids a Card class that you can use to create, display, and compare playing cards.

Card(2,3)
3♥

display all suits

suits
['♣', '♦', '♥', '♠']

display all ranks

ranks
[None, 'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']

Deck class can be called to generate a deck of playing card. Initially, the deck is ordered.

deck = Deck()
deck
A♣; 2♣; 3♣; 4♣; 5♣; 6♣; 7♣; 8♣; 9♣; 10♣; J♣; Q♣; K♣; A♦; 2♦; 3♦; 4♦; 5♦; 6♦; 7♦; 8♦; 9♦; 10♦; J♦; Q♦; K♦; A♥; 2♥; 3♥; 4♥; 5♥; 6♥; 7♥; 8♥; 9♥; 10♥; J♥; Q♥; K♥; A♠; 2♠; 3♠; 4♠; 5♠; 6♠; 7♠; 8♠; 9♠; 10♠; J♠; Q♠; K♠

shuffle() method could be used to shuffle the deck.

deck.shuffle()
deck
Q♥; 6♥; 4♥; Q♣; 8♥; K♣; A♦; Q♠; 7♠; 5♦; J♣; J♥; 6♠; A♣; 9♥; 9♣; J♠; A♠; 10♥; 3♥; 7♦; K♠; 4♠; 2♦; 5♠; K♦; 10♣; 5♣; 4♦; 8♣; 7♣; 10♠; Q♦; K♥; A♥; 7♥; 6♦; 3♠; 3♦; 9♦; 4♣; 6♣; 3♣; 8♦; 5♥; 9♠; 10♦; 2♠; J♦; 8♠; 2♥; 2♣

draw_n() function can be used to draw n card with or without replacement.

let’s draw 10 cards with replacement.

draw_n(10, replace=True)
[10♦, 3♣, 6♦, Q♦, 3♥, K♠, 4♣, K♣, 3♣, 2♦]

now let’s draw 10 cards without replacement.

draw_n(10, replace=False)
[Q♣, A♥, A♦, J♦, 2♦, 5♠, 8♦, J♥, 5♣, 3♠]

Example: One can draw two sets of cards each set contains four cards and compare to see which one has higher rank.

Developer install

If you want to develop nbdev_cards yourself, please use an editable installation of nbdev_cards.

git clone https://github.com/hdocmsu/nbdev_cards.git

pip install -e "nbdev_cards[dev]"

You also need to use an editable installation of nbdev, fastcore, and excnb.

Happy Coding!!!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nbdev-cards2022-0.1.7.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

nbdev_cards2022-0.1.7-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

Details for the file nbdev-cards2022-0.1.7.tar.gz.

File metadata

  • Download URL: nbdev-cards2022-0.1.7.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.11.3 pkginfo/1.8.2 requests/2.28.1 requests-toolbelt/0.8.0 tqdm/4.64.0 CPython/3.8.12

File hashes

Hashes for nbdev-cards2022-0.1.7.tar.gz
Algorithm Hash digest
SHA256 42c060ba4bc8cecaebc818fce80592b9a64652a874a0924a1651d4ecb8ecaa97
MD5 e96ef427df55a2979d2a8b950ea3df27
BLAKE2b-256 d025a2b9eea0cf19f9a1c5461d56aa705f799c2ee03bf599c7c42411bc309eb8

See more details on using hashes here.

File details

Details for the file nbdev_cards2022-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: nbdev_cards2022-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 36.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.11.3 pkginfo/1.8.2 requests/2.28.1 requests-toolbelt/0.8.0 tqdm/4.64.0 CPython/3.8.12

File hashes

Hashes for nbdev_cards2022-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 1e4e4e0afddb24ea9702ae0db34ef4e2837fa1e282125e18ce98c1aa38feedb8
MD5 8440a99f9b2e3d4b976df13ba3c5c178
BLAKE2b-256 93dd26b6afc0ba195400b19ac66a37b772d7d2fcebebca4493b63642d16c2c62

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page