Skip to content

Instantly share code, notes, and snippets.

@LiamKarlMitchell
Last active February 18, 2016 03:14
Show Gist options
  • Save LiamKarlMitchell/18515471c936715408b2 to your computer and use it in GitHub Desktop.
Save LiamKarlMitchell/18515471c936715408b2 to your computer and use it in GitHub Desktop.
A way to output unicode information for a card number.
// https://en.wikipedia.org/wiki/Standard_52-card_deck
function unicodeCard(cardNumber) {
// As of Unicode 7.0 playing cards are now represented. Note that the following chart ("Playing Cards", Range: 1F0A0–1F0FF) includes cards from the Tarot Nouveau deck as well as the standard 52-card deck.
if (cardNumber < 0 || cardNumber > 56) { throw 'Invalid cardNumber '+cardNumber }
cardNumber += 2*Math.max(Math.ceil(cardNumber/14),1);
return String.fromCodePoint(127136-2+cardNumber);
}
function unicodeCardHTMLEncoded(cardNumber) {
// As of Unicode 7.0 playing cards are now represented. Note that the following chart ("Playing Cards", Range: 1F0A0–1F0FF) includes cards from the Tarot Nouveau deck as well as the standard 52-card deck.
if (cardNumber < 0 || cardNumber > 56) { throw 'Invalid cardNumber '+cardNumber }
cardNumber += 2*Math.max(Math.ceil(cardNumber/14),1);
return '&#'+(127136-2+cardNumber)+';';
}
function suit(cardNumber) {
if (cardNumber < 0 || cardNumber > 56) { throw 'Invalid cardNumber '+cardNumber }
switch(Math.ceil(cardNumber/14)) {
case 1: return 'Spades'; break;
case 2: return 'Hearts'; break;
case 3: return 'Diamonds'; break;
case 4: return 'Clubs'; break;;
}
return '?';
}
function suitUnicode(cardNumber) {
if (cardNumber < 0 || cardNumber > 56) { throw 'Invalid cardNumber '+cardNumber }
switch(Math.ceil(cardNumber/14)) {
case 1: return '♠'; break;
case 2: return '♥'; break;
case 3: return '♦'; break;
case 4: return '♣'; break;
}
return '?';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment