Code:
<html>
<head>
<title></title>
<script type="text/javascript">
function sortCards(a,b) {
// sort by card order, if the 2 cards are the same sort by suit order
if (a.rank.order > b.rank.order) {
return 1;
} else if (a.rank.order < b.rank.order) {
return -1;
} else {
if (a.suit.order > b.suit.order) {
return 1;
} else if (a.suit.order < b.suit.order) {
return -1;
} else {
return 0;
}
}
}
// the possible suits, name, symbol, color and order
var suits = [
{name:"clubs", symbol:"\u2663", color:"black", order:1},
{name:"diamonds", symbol:"\u2666", color:"red", order:2},
{name:"hearts", symbol:"\u2665", color:"red", order:3},
{name:"spades", symbol:"\u2660", color:"black", order:4}
];
// the possible ranks, symbol and order
var ranks = [
{symbol:"A", order:1},
{symbol:"2", order:2},
{symbol:"3", order:3},
{symbol:"4", order:4},
{symbol:"5", order:5},
{symbol:"6", order:6},
{symbol:"7", order:7},
{symbol:"8", order:8},
{symbol:"9", order:9},
{symbol:"10", order:10},
{symbol:"J", order:11},
{symbol:"Q", order:12},
{symbol:"K", order:13}
];
// we construct a deck array that contains the 52 possible cards
var deck = [];
for (var i=0; i < suits.length; i++) {
for (var j=0; j < ranks.length; j++) {
var card = {rank: ranks[j], suit: suits[i]};
deck.push(card);
}
}
// hand array to store the cards we have been "dealt"
var hand = [];
// pick 5 random cards from the deck, removing each one so we dont get duplicates and our odds are correct for the next card
for (var i=0; i < 5; i++) {
var cardIndex = Math.floor(deck.length * Math.random());
var card = deck[cardIndex];
// REMOVE card from deck
deck.splice(cardIndex,1);
// add card to the hand
hand.push(card);
}
// sort the hand array using the sortCards function (sorts by rank then suit)
hand.sort(sortCards);
// display the hand array
for (var i=0; i < hand.length; i++) {
var card = hand[i];
document.write("<span style='color:" + card.suit.color + "'>" + card.rank.symbol + card.suit.symbol + "</span> ");
}
</script>
</head>
<body>
</body>
</html>
Bookmarks