Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Card Constructor
- var Card = function(s, n) {
- var suit = s;
- var number = n;
- this.getSuit = function() {
- return suit;
- };
- this.getNumber = function() {
- return number;
- };
- this.getValue = function(){
- if(number > 10){
- return 10;
- }else if(number == 1){
- return 11;
- }else{
- return number;
- }
- };
- };
- function Deal() {
- var suit = Math.floor(Math.random() * 4 + 1);
- var number = Math.floor(Math.random() * 13 + 1);
- return new Card(suit, number);
- }
- var Hand = function() {
- var card1 = Deal();
- var card2 = Deal();
- var hand = [card1, card2];
- this.getHand = function() {
- return hand;
- };
- this.score = function() {
- var sum = 0;
- var aces = 0;
- for(i=0;i<hand.length;i++) {
- if(hand[i].getNumber === 1) {
- aces =+ 1;
- }
- sum += hand[i].getValue();
- }
- for(i=aces; i>0; i--) {
- if (sum<11) {
- sum +=10;
- } else if (aces === 0) {
- return sum;
- }
- }
- return sum;
- };
- this.hitMe = function() {
- var newCard = Deal();
- hand.push(newCard);
- };
- this.printHand = function() {
- var string = "";
- for(i=0;i<hand.length;i++) {
- var suit;
- var rank;
- switch(hand[i].getSuit()) {
- case 1: suit = "hearts"; break;
- case 2: suit = "diamonds"; break;
- case 3: suit = "clubs"; break;
- case 4: suit = "spades"; break;
- }
- switch(hand[i].getNumber()) {
- case 1: rank = "ace"; break;
- case 11: rank = "jack"; break;
- case 12: rank = "queen"; break;
- case 13: rank = "king"; break;
- default: rank = hand[i].getNumber();
- }
- string = string + rank + " of " + suit;
- if (i<(hand.length-1)) {
- string = string +", ";
- }
- }
- return string;
- };
- };
- function playAsDealer() {
- var dealerHand = new Hand();
- while(dealerHand.score()<17) {
- dealerHand.hitMe();
- }
- return dealerHand;
- }
- function playAsUser() {
- var userHand = new Hand();
- var hit;
- while (hit !== false) {
- hit = confirm("Your hand is "+userHand.printHand()+" click OK to take a hit. Click cancel to stand.");
- if(hit) {
- userHand.hitMe();
- }
- }
- return userHand;
- }
- function declareWinner (userHand, dealerHand) {
- var user = userHand.score();
- var dealer = dealerHand.score();
- console.log("user "+user+" - dealer "+dealer);
- if (user > 21) {
- if (dealer > 21) {
- return "You tied!";
- } else {
- return "You lose!";
- }
- }
- if (dealer > 21) {
- return "You win!";
- } else if (user > dealer) {
- return "You win!";
- } else if (user === dealer) {
- return "You tied!";
- }
- console.log(declareWinner());
- }
- var user = playAsUser();
- var dealer = playAsDealer();
- declareWinner(user, dealer);
- //console.log("Real tests only");
- /*
- function handsMaker(num) {
- var hands = [];
- for (var i = 0; i<=(num-1); i++) {
- hands[i] = new Hand();
- }
- return hands;
- }
- */
- //var manyHands = handsMaker(3);
- //console.log("manyHands length = "+manyHands.length);
- //console.log(manyHands[0].printHand());
- //console.log(manyHands[1].printHand());
- //console.log(manyHands[2].printHand());
- //console.log(manyHands);
- /*
- function cheater(allHands) {
- for (i=0; i<allHands.length; i++) {
- console.log(allHands[i].score()+ " --- "+allHands[i].printHand());
- }
- }
- */
- //cheater(manyHands);
- /*
- for(i=0; i<3; i++) {
- console.log(i);
- }
- */
- //var myHand = new Hand();
- //console.log(myHand.score()+ " --- "+myHand.printHand());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement