Advertisement
redwoolwinterhat

3. Make it a Game! 3.3 And the Winner Is... Works Somehow

Mar 8th, 2013
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Card Constructor
  2. var Card = function(s, n) {
  3.     var suit = s;
  4.     var number = n;
  5.     this.getSuit = function() {
  6.         return suit;
  7.     };
  8.     this.getNumber = function() {
  9.         return number;
  10.     };
  11.     this.getValue = function(){
  12.         if(number > 10){
  13.             return 10; 
  14.         }else if(number == 1){
  15.             return 11;
  16.         }else{
  17.             return number;
  18.         }
  19.     };
  20. };
  21.  
  22. function Deal() {
  23.     var suit = Math.floor(Math.random() * 4 + 1);
  24.     var number = Math.floor(Math.random() * 13 + 1);
  25.     return new Card(suit, number);
  26. }
  27.  
  28. var Hand = function() {
  29.     var card1 = Deal();
  30.     var card2 = Deal();
  31.     var hand = [card1, card2];
  32.     this.getHand = function() {
  33.         return hand;
  34.     };
  35.     this.score = function() {
  36.         var sum = 0;
  37.         var aces = 0;
  38.         for(i=0;i<hand.length;i++) {
  39.                 if(hand[i].getNumber === 1) {
  40.                     aces =+ 1;
  41.                 }
  42.             sum += hand[i].getValue();
  43.         }
  44.         for(i=aces; i>0; i--) {
  45.             if (sum<11) {
  46.                 sum +=10;
  47.             } else if (aces === 0) {
  48.                 return sum;
  49.             }
  50.         }
  51.         return sum;
  52.     };
  53.     this.hitMe = function() {
  54.         var newCard = Deal();
  55.         hand.push(newCard);
  56.     };
  57.     this.printHand = function() {
  58.         var string = "";
  59.         for(i=0;i<hand.length;i++) {
  60.             var suit;
  61.             var rank;
  62.             switch(hand[i].getSuit()) {
  63.                 case 1: suit = "hearts"; break;
  64.                 case 2: suit = "diamonds"; break;
  65.                 case 3: suit = "clubs"; break;
  66.                 case 4: suit = "spades"; break;
  67.             }
  68.             switch(hand[i].getNumber()) {
  69.                 case 1: rank = "ace"; break;
  70.                 case 11: rank = "jack"; break;
  71.                 case 12: rank = "queen"; break;
  72.                 case 13: rank = "king"; break;
  73.                 default: rank = hand[i].getNumber();
  74.             }
  75.             string = string + rank + " of " + suit;
  76.             if (i<(hand.length-1)) {
  77.                 string = string +", ";
  78.             }
  79.         }
  80.         return string;
  81.     };
  82. };
  83.  
  84. function playAsDealer() {
  85.     var dealerHand = new Hand();
  86.     while(dealerHand.score()<17) {
  87.         dealerHand.hitMe();
  88.     }
  89.     return dealerHand;
  90. }
  91.  
  92. function playAsUser() {
  93.     var userHand = new Hand();
  94.     var hit;
  95.     while (hit !== false) {
  96.         hit = confirm("Your hand is "+userHand.printHand()+" click OK to take a hit. Click cancel to stand.");
  97.         if(hit) {
  98.             userHand.hitMe();
  99.         }
  100.     }
  101.     return userHand;
  102. }
  103.  
  104. function declareWinner (userHand, dealerHand) {
  105.     var user = userHand.score();
  106.     var dealer = dealerHand.score();
  107.     console.log("user "+user+" - dealer "+dealer);
  108.     if (user > 21) {
  109.         if (dealer > 21) {
  110.             return "You tied!";
  111.         } else {
  112.             return "You lose!";
  113.         }
  114.     }
  115.     if (dealer > 21) {
  116.         return "You win!";
  117.     } else if (user > dealer) {
  118.         return "You win!";
  119.     } else if (user === dealer) {
  120.         return "You tied!";
  121.     }
  122.     console.log(declareWinner());
  123. }
  124.  
  125.  
  126. var user = playAsUser();
  127. var dealer = playAsDealer();
  128. declareWinner(user, dealer);
  129.  
  130.  
  131. //console.log("Real tests only");
  132.  
  133. /*
  134. function handsMaker(num) {
  135.     var hands = [];
  136.     for (var i = 0; i<=(num-1); i++) {
  137.         hands[i] = new Hand();
  138.     }
  139.     return hands;
  140. }
  141. */
  142.  
  143. //var manyHands = handsMaker(3);
  144. //console.log("manyHands length = "+manyHands.length);
  145. //console.log(manyHands[0].printHand());
  146. //console.log(manyHands[1].printHand());
  147. //console.log(manyHands[2].printHand());
  148. //console.log(manyHands);
  149.  
  150. /*
  151. function cheater(allHands) {
  152.     for (i=0; i<allHands.length; i++) {
  153.         console.log(allHands[i].score()+ " --- "+allHands[i].printHand());
  154.     }
  155. }
  156. */
  157.  
  158. //cheater(manyHands);
  159.  
  160. /*
  161. for(i=0; i<3; i++) {
  162.     console.log(i);
  163. }
  164. */
  165.  
  166. //var myHand = new Hand();
  167. //console.log(myHand.score()+ " --- "+myHand.printHand());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement