Blackjack JS Game
Made for Code Academy's Final Blackjack Game - part 3.5 (http://www.codecademy.com/courses/blackjack-part-3/2/5).
by NicholasRBowers
JavaScript
// Deck Constructor
function Deck() {
var suits = [];
var ranks = [];
var cards = [];
// Construct the deck
for(i=1; i<=4; i++) {
suits.push(i);
}
for(i=1; i<=13; i++) {
ranks.push(i);
}
for(i in suits) {
for(j in ranks) {
cards.push([suits[i], ranks[j]]);
}
}
// Shuffle the deck
cards.sort(function(a, b){ return 0.5 - Math.random(); });
// Deal method
this.deal = function() {
var card = cards.pop();
return new Card(card[0], card[1]);
};
}
// Card Constructor
function Card(s, r) {
var suit = parseInt(s);
var rank = parseInt(r);
this.getSuit = function() {
switch(suit){
case 1:
return "Clubs";
case 2:
return "Diamonds";
case 3:
return "Spades";
case 4:
return "Hearts";
}
};
this.getRank = function() {
switch(rank){
case 1:
return "Ace";
case 11:
return "Jack";
case 12:
return "Queen";
case 13:
return "King";
default:
return rank;
}
};
this.getValue = function() {
if(rank === 1) {
return 11;
} else if(rank > 10) {
return 10;
} else {
return rank;
}
};
}
// Hand Constructor
function Hand(deck) {
var card1 = deck.deal();
var card2 = deck.deal();
var hand = [card1, card2];
this.getHand = function() {
return hand;
};
this.score = function() {
var score = 0;
var aces = 0;
for(var i in hand) {
if(hand[i].getValue() === 11) {
aces += 1;
}
score += hand[i].getValue();
}
while(aces > 0 && score > 21) {
score -= 10;
aces--;
...