Created
October 20, 2015 23:37
-
-
Save jdetle/49f947e389d45b323c92 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)); | |
function shuffleDeck (destroyedDeck, i){ | |
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, i); | |
} | |
} | |
this.shuffle = function (){ | |
shuffled = {}; | |
var i = 0; | |
//console.log(originalDeck); | |
var destroyedDeck = deepCopy(originalDeck); | |
//console.log(destroyedDeck); | |
return shuffleDeck(destroyedDeck,i); | |
} | |
}; | |
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(); | |
var newerdeck = deck.shuffle(); | |
console.log(newdeck, newerdeck); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment