Reputation: 13908
Here is my code:
var Placemat = function(id,id2,id3) {
this.bucket = "";
this.result = 0;
this.bucketvalue = 0;
this.total = 0;
this.light = 0;
this.deal = function() {
var card1 = deck.shift();
var card2 = deck.shift();
this.hand = document.getElementById(id2);
this.hand.innerHTML = card1.num + " of " + card1.suit + ", " + card2.num + " of " + card2.suit;
if (card1.num == "Ace" && card2.value == "Ace") {
card1.value = 11;
}
this.result = this.result + card1.value + card2.value;
this.total = this.result;
totalplayer = totalplayer + 1;
return this.total;
};
this.hit = function() {
this.light++;
var card3 = deck.shift();
var nhand = ", " + card3.num + " of " + card3.suit;
this.bucket = this.bucket + nhand;
this.bucketspace = document.getElementById(id3);
this.bucketspace.innerHTML = this.bucket;
this.bucketvalue = this.bucketvalue + card3.value;
this.total = this.total + this.bucketvalue;
if (this.total > 21) {
totaldone = totaldone + 1;
alert("Bust! By " + nhand);
refresh();
};
if (this.light == 3) {
alert("5 Card Blackjack! You win!");
refresh();
};
return this.total;
};
this.stay = function() {
this.player = document.getElementById(id);
this.player.style.backgroundColor = "gray";
this.player.innerHTML = "Stayed at " + this.total;
totaldone = totaldone + 1;
};
};
I make two instances of the Constructor here:
var d_placemat = new Placemat(param1,param2);
var tl_placemat = new Placemat(param3,param4);
And I call them here:
function compare() {
if (d_placemat.total > tl_placemat.total) {
alert("Dealer beats TL!");
refresh();
}
else {
alert("TL beats Dealer!");
refresh();
}
};
};
For some reason, I cannot access d_placemat.total
and tl_placemat.total
in compare()
, even though they are assigned values earlier in the program and are both contained within the Constructor. Does anyone know what is wrong here?
Upvotes: 0
Views: 52
Reputation: 707326
If you fix up the bracing in your compare function, it seems to work for me here: http://jsfiddle.net/jfriend00/wnzz8/ and there is access to the two total values as you are expecting.
function compare() {
if (d_placemat.total > tl_placemat.total) {
alert("Dealer beats TL!");
}
else {
alert("TL beats Dealer!");
}
}
P.S. I also removed the refresh() calls because I don't know what they did and you didn't provide the code for them.
Upvotes: 1