1.0.3 • Published 4 years ago
@virtuoid/decks v1.0.3
Fun With JavaScript - 'Deck' classes
This repository is for the 'Dwck' classes used in the Fun with JavaScript series.
Versions
1.0.3 : Modified to match tests 1.0.2 : Initial Version
Installation
npm install --save @virtuoid/decksDependencies
@virtuoid/cards for the base Card class.
uuid for unique IDs.
All cards within this deck must have as its base the Card class.
Usage
There is currently 1 Deck class associated with this repository:
Base Class (Deck)
import { Deck } from '@virtuoid/decks';
import { Card } from '@virtuoid/cards'; // this can be any class that extends 'Card'
const deck = new Deck([
new Card({ suit: 'Clubs', rank: 'A', value: 1 }),
new Card({ suit: 'Diamonds', rank: 'A', value: 1 }),
new Card({ suit: 'Hearts', rank: 'A', value: 1 }),
new Card({ suit: 'Spades', rank: 'A', value: 1 })
]);Properties
| Name | R/W | Type | Description |
|---|---|---|---|
| id | RO | string | The ID for this deck |
| cardCount | RO | number | The number of cards within the collection |
Methods
| Name | Returns | Description |
|---|---|---|
| getSuit(Card.suit) | Array | Returns collection of all cards that match the given suit, or empty collection. |
| getRank(Card.rank) | Array | Returns collection of all cards that match the given rank, or empty collection. |
| getValue(Card.value) | Array | Returns collection of all cards that match the given value, or empty collection. |
| getComparison(Card card) | Array | Returns collection of all cards that match the given card, using the card's compare() method |
| findCard(Card card) | number | Returns index of card in deck, otherwise -1 |
| add(Card card) | undefined | Adds a card to the deck. The card is placed as the last card in the deck |
| remove() | Card | Removes the top card from the deck. Returns undefined if no cards are in the deck. |
| remove(number cardPosition) | Card | Removes a card from the deck based upon the position of the card given in the argument. Returns undefined if the card position is invalid |
| remove(Card card) | Card | Removes the card specified in the argument. Returns undefined if the card cannot be found. |
| shuffle() | undefined | Shuffles the cards |
| deal(Deck deck) | undefined | Deals a single card from the current deck to the deck in the argument. The card dealt is the top-most card in the collection (index = 0) |
Classes
As time goes on, more 'Deck' classes will be added to this repository. These directions will be updated as they are added.
Github
https://github.com/TheVirtuoid/fwjs-deck