dataUrl // DOM refs var handSlots = document.getElementById('handSlots'); var statusLine = document.getElementById('statusLine'); var deckCount = document.getElementById('deckCount'); var discardStrip = document.getElementById('discardStrip'); var debugLog = document.getElementById('debugLog'); var discardPile = document.getElementById('discardPile'); // debug function logDebug(msg){ try { var now = (new Date()).toLocaleTimeString(); debugLog.textContent = now + ' — ' + msg + '\\n' + debugLog.textContent; } catch(e){} } // deck helpers function makeDeck(){ var d = []; for(var si=0; si
0;i--){ var j = Math.floor(Math.random()*(i+1)); var tmp = arr[i]; arr[i]=arr[j]; arr[j]=tmp; } return arr; } // SVG card generator -> data URL function makeCardDataUrl(card){ var w = 300, h = 420; var rank = card.rank; var suit = card.suit; var color = card.color; var suitName = card.suitName; var svg = "
"; svg += "
"; svg += ""; svg += "
"+rank+"
"; svg += "
"+suitName+"
"; svg += "
"+suit+"
"; svg += "
"; svg += "
"+rank+"
"; svg += "
"+suitName+"
"; svg += "
"; return 'data:image/svg+xml;utf8,' + encodeURIComponent(svg); } function ensureCache(arr){ for(var i=0;i
'>
Go Back to Portal