Advertisement
Guest User

JavaScript shuffle visualizer

a guest
Aug 27th, 2014
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /************ CoffeeScript source: ************
  2. deckSize = 52
  3. deck = [0...deckSize]
  4.  
  5. rand = (min = 0, max = 51) ->
  6.   Math.floor(Math.random() * (max - min + 1)) + min
  7.  
  8. swap = (a, b) ->
  9.   [deck[a], deck[b]] = [deck[b], deck[a]]
  10.  
  11. testCount = 52
  12. test = (deck) ->
  13.     document.write '<table>'    
  14.     for [1..testCount]
  15.         do shuffle
  16.         for i in [0...deckSize]
  17.             if deck.indexOf(i) is -1 then throw "#{i} is not in the deck"
  18.             if deck.length isnt 52 then throw "deck length is #{deck.length}; should be 52"  
  19.         plot deck        
  20.     document.write '</table>'
  21.  
  22. plot = (deck) ->
  23.     document.write '<tr>'    
  24.     for i in [0...deck.length]
  25.         bg = 5 * deck[i] % 256
  26.         document.write """
  27.             <td style='background-color:rgb(#{bg},#{bg},#{bg});height:20px;width:20px'>
  28.                 &nbsp;
  29.             </td>"""            
  30.     document.write '</tr>'
  31. *********************************************/
  32. //Usage:
  33. //1. Declare your shuffle() function
  34. //2. Run `test(deck)`
  35.  
  36. var deck, deckSize, plot, rand, swap, test, testCount, _i, _results;
  37.  
  38. deckSize = 52;
  39.  
  40. deck = (function() {
  41.   _results = [];
  42.   for (var _i = 0; 0 <= deckSize ? _i < deckSize : _i > deckSize; 0 <= deckSize ? _i++ : _i--){ _results.push(_i); }
  43.   return _results;
  44. }).apply(this);
  45.  
  46. rand = function(min, max) {
  47.   if (min == null) min = 0;
  48.   if (max == null) max = 51;
  49.   return Math.floor(Math.random() * (max - min + 1)) + min;
  50. };
  51.  
  52. swap = function(a, b) {
  53.   var _ref;
  54.   return _ref = [deck[b], deck[a]], deck[a] = _ref[0], deck[b] = _ref[1], _ref;
  55. };
  56.  
  57. testCount = 52;
  58.  
  59. test = function(deck) {
  60.   var i, _j, _k;
  61.   document.write('<table>');
  62.   for (_j = 1; 1 <= testCount ? _j <= testCount : _j >= testCount; 1 <= testCount ? _j++ : _j--) {
  63.     shuffle();
  64.     for (i = _k = 0; 0 <= deckSize ? _k < deckSize : _k > deckSize; i = 0 <= deckSize ? ++_k : --_k) {
  65.       if (deck.indexOf(i) === -1) throw "" + i + " is not in the deck";
  66.       if (deck.length !== 52) {
  67.         throw "deck length is " + deck.length + "; should be 52";
  68.       }
  69.     }
  70.     plot(deck);
  71.   }
  72.   return document.write('</table>');
  73. };
  74.  
  75. plot = function(deck) {
  76.   var bg, i, _j, _ref;
  77.   document.write('<tr>');
  78.   for (i = _j = 0, _ref = deck.length; 0 <= _ref ? _j < _ref : _j > _ref; i = 0 <= _ref ? ++_j : --_j) {
  79.     bg = 5 * deck[i] % 256;
  80.     document.write("<td style='background-color:rgb(" + bg + "," + bg + "," + bg + ");height:20px;width:20px'>\n    &nbsp;\n</td>");
  81.   }
  82.   return document.write('</tr>');
  83. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement