Shuffle is a node.js package for shuffling and dealing decks of cards (or anything else you'd like to shuffle).
Installation (via npm)
$ npm install shuffleUsing shuffle is simple:
varShuffle=require('shuffle');vardeck=Shuffle.shuffle();varcard=deck.draw();Alternatively you can draw multiple cards at once:
varhand=deck.draw(5);You can also use it to deal cards to multiple hands:
varplayer1=[],player2=[],player3=[],player4=[];deck.deal(5,[player1,player2,player3,player4]);The above deals a card to player #1 then player #2 then player #3 then player #4 then back again to player #1 until each player has five cards.
If you need to reset and reshuffle the deck, it is as easy as:
deck.reset();//sets the deck back to a full 52-card deck, unshuffleddeck.shuffle();You don't have to shuffle standard playing cards. You can shuffle other stuff too:
varShuffle=require('shuffle');vargoFish=[{color: 'red',number: 1},{color: 'blue',number: 2}, ...];vardeck=Shuffle.shuffle({deck: goFish});You can also supply your own randomizer so that you can supply a custom seed:
varShuffle=require('shuffle');varsrand=require('srand');//https://github.com/isaacs/node-srand (npm install srand)srand.seed(1000);vardeck=Shuffle.shuffle({random: function(){returnsrand.random();}});You can also supply number of decks to play with:
varShuffle=require('shuffle');vardeck=Shuffle.shuffle({numberOfDecks: 8});Other deck methods:
deck.drawFromBottomOfDeck()// 1 carddeck.drawFromBottomOfDeck(5)// array of 5 cardsdeck.drawRandom()// 1 carddeck.drawRandom(5)// array of 5 cardsdeck.putOnTopOfDeck(card)deck.putOnTopOfDeck([card,card,card])deck.putOnBottomOfDeck(card)deck.putOnBottomOfDeck([card,card,card])deck.length// integer (# of cards left in deck)
