Step5: Adding methods to interpret actual suit and value of cards
//Hand Constructor
var Hand = function(){
this.card1 = deal();
console.log(“card1 is “+this.card1.number+” of ” + this.card1.suit);
this.card2 = deal();
console.log(“card2 is “+this.card2.number+” of ” + this.card2.suit);
};
//Card Constructor
var Card = function(s,n){
this.number = n;
this.suit = s;
this.getSuit = function(s){
//console.log(“I’m here in getSuit”);
switch(this.suit){
case 1:
this.suit = “clubs”;
break;
case 2:
this.suit = “diamonds”;
break;
case 3:
this.suit = “hearts”;
break;
case 4:
this.suit = “spades”;
break;
}
};
this.getValue = function(n){
console.log(“I’m here in getValue”);
if (n === 1){
this.value = 11;
}
else if (n >= 11){
this.value = 10;
}
else{
this.value = n;
}
};
};
//Deal function
var deal = function(){
var suit = Math.floor(Math.random()*4)+1;
console.log(“deal function suit: “+suit);
var number = Math.floor(Math.random()*13)+1;
console.log(“deal function number: “+number);
return new Card(suit,number);
};
//Main Function
var myHand = new Hand();
myHand.card1.getSuit(myHand.card1.suit);
myHand.card1.getValue(myHand.card1.number);
console.log(“card1 is a “+myHand.card1.suit+” of value “+myHand.card1.value);
myHand.card2.getSuit(myHand.card2.suit);
myHand.card2.getValue(myHand.card2.number);
console.log(“card2 is a “+myHand.card2.suit+ ” of value “+myHand.card2.value);
In this section I added two methods (these are just functions that handle objects). Methods are placed inside of the objects they work on (is this right?Always?). In this program my methods interpret the suit and number variables as the suit that the number represents (clubs, diamonds, etc) and the value of the card (ace = 11, face cards are all worth 10 and numbered cards are worth their numerical value).
As usual, I have included a couple console.log statements so that I could track where problems cropped up along the way.