Blackjack Game

You might also like

You are on page 1of 5

function Card(suit,number) { var Suit = suit; var NUmber = number; this.getNumber = function() { return NUmber; }; this.

getSuit = function() { return Suit; }; this.getValue = function() { if (number > 10) { return 10; } else if (number === 1) { return 11; } else { return number; } }; } var deal = function() { var a = Math.floor(Math.random()*4+1); var b = Math.floor(Math.random()*13+1); return new Card(a,b); }; function Hand() { var cards = []; cards[0] = deal(); cards[1] = deal(); this.getHand = function() { return cards; }; this.score = function() { var score = 0; var aces = 0; for (var i =0; i<cards.length; i++) { if (cards[i].getValue() === 11) { aces++;

} score += cards[i].getValue(); } if (score>21 && aces>0) { while (aces>0) { score -=10; aces--; } } return score; }; this.printHand = function(iD) { var identity = iD; var text = ""; if(identity === "D") { text = "The dealer has the "; } else { text = "You have the "; } for (var i = 0; i <cards.length;i++) { var suitType = cards[i].getSuit(); var suitText = ""; switch (suitType) { case 1: suitText = "Hearts"; break; case 2: suitText = "Diamonds"; break; case 3: suitText = "Clubs"; break; case 4: suitText = "Spades"; break;

default: suitText = "error"; } var numberType = cards[i].getNumber(); var numberText = ""; switch (numberType) { case 1: numberText = "Ace"; break; case 11: numberText = "Jack"; break; case 12: numberText = "Queen"; break; case 13: numberText = "King"; break; default: numberText = numberType; } text += numberText+" of "+suitText+", "; } text+= "for a score of "+this.score(); text+="."; return text; }; this.hitMe = function() { var newCard = deal(); cards.push(newCard); }; } var playAsDealer = function() { dealerHand = new Hand ();

if(dealerHand.score()<17) { while (dealerHand.score()<17) { dealerHand.hitMe(); } } return dealerHand; }; var playAsUser = function () { userHand = new Hand (); while((confirm(userHand.printHand("U")+" Do you want to twist?")) === true) { userHand.hitMe(); } return userHand; }; var declareWinner = function (userHand, dealerHand) { if (userHand.score()>21) { if(dealerHand.score()>21) { return "You tied!"; } else { return "You lose!"; } } else if (dealerHand.score()>21) { return "You win!"; } else if (userHand.score()>dealerHand.score()) { return "You win!"; } else if (userHand.score()===dealerHand.score()) { return "You tied!"; } else { return "You lose!"; } }; var balance = 100; var playGame = function() { var bet = prompt("What do you wish to bet?"); bet = +bet; playAsUser(); playAsDealer();

console.log(declareWinner(userHand,dealerHand)+"\n"+userHand.printHand("U") +"\n"+dealerHand.printHand("D")); if ((declareWinner(userHand,dealerHand))==="You win!") { balance += bet; } else if (((declareWinner(userHand,dealerHand))==="You lose!")) { balance -= bet; } console.log("Your balance is "+balance+"."); }; playGame();

You might also like