Created
October 20, 2015 23:22
-
-
Save jdetle/f00851961761d27cf35b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var deepCopy = require("deepcopy"); | |
//takes in deck object, returns shuffled deck object, given random number generator | |
function size (object) { | |
var size = 0; | |
var keys = Object.keys(object); | |
for (var i = 0; i<keys.length; i++){ | |
if(object.hasOwnProperty(keys[i])){ | |
size++; | |
} | |
} | |
return size; | |
} | |
var deck = function (deck) { | |
var originalDeck = deepCopy(deck); | |
var destroyedDeck = deepCopy(deck); | |
//console.log(destroyedDeck); | |
//console.log(originalDeck); | |
//console.log(size(originalDeck)); | |
//console.log(size(destroyedDeck)); | |
var shuffled = {}; | |
var i = 0; | |
shuffleDeck = function (){ | |
if(size(shuffled) == size(originalDeck)){ | |
//console.log(shuffled); | |
var newShuffle = deepCopy(shuffled); | |
//console.log(newShuffle); | |
return newShuffle; | |
} | |
else{ | |
var keys = Object.keys(destroyedDeck); | |
var random = Math.floor(Math.random()*keys.length); | |
//console.log(i); | |
//console.log(typeof(destroyedDeck)); | |
//console.log(keys); | |
//console.log(random); | |
//console.log(keys[random]) | |
shuffled[i+1] = destroyedDeck[keys[random]]; | |
//console.log(shuffled); | |
i++; | |
delete destroyedDeck[keys[random]]; | |
return shuffleDeck(destroyedDeck); | |
} | |
} | |
this.shuffle = function (){ | |
return shuffleDeck(); | |
} | |
}; | |
var deckObj = {1 : "a", | |
2: "b", | |
3: "c", | |
4: "d", | |
5: "f", | |
6: "g" | |
}; | |
//console.log(Object.getOwnPropertyNames(deckObj)) | |
var deck = new deck(deckObj); | |
var newdeck = deck.shuffle(); | |
console.log(newdeck); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment