// function scoreHandArray scores your hand
function scoreHandArray(hand) {
var score = 0;
for (i=0,i<hand.length,i++) {
score = score + hand[i].value;
};
return score;
};
console.log("You have the " + player[0].face + " of " + player[0].suit " and the " + player[1].face " of " + player[1].suit " for a score of " scoreHandArray(player));
你好,又是我!這裏這個函數中有一個錯誤,我無法找到,返回SyntaxError: Expected ';'
。 (我知道這是功能,因爲註釋掉的console.log改變不了什麼。)功能scoreHandArray
取對象的數組,並返回對象的得分。完整的源代碼在這裏:得分手對象
// This code defines the Object constructor Card, used to make the card objects
var Card = function(card) {
this.face = theFace(card);
this.suit = theSuit(card);
this.value = theValue(card);
};
// This code creates the Deck to be used.
var deck = [];
for (i=0 ; i<52 ; i++) {
deck.push(i);
};
for (i=51 ; i>0 ; i--) {
var random = Math.floor(Math.random()*i);
var temp = deck[random];
deck[random] = deck[i];
deck[i] = temp;
};
// 0-12 is Spades.
// 13-25 is Hearts.
// 26-38 is Clubs.
// 39-51 is Diamonds.
// Now we create the hand of the player and dealer
var player = [];
var dealer = [];
// Now to deal a card to player
player.push(deck.pop());
dealer.push(deck.pop());
// and another
player.push(deck.pop());
dealer.push(deck.pop());
// function theFace gives the face of a card
function theFace(card) {
var faces = ["King","Ace","2","3","4","5","6","7","8","9","10","Queen","Jack"];
return(faces[card%13]);
};
// function theValue uses 'switch' to determine points from a card
function theValue(card) {
var value = card % 13;
switch(value) {
case(0):
case(11):
case(12):
value = 10;
break;
case(1):
value = 11;
break;
default:
value = value;
break;
};
return value;
};
// function theSuit returns the suit of a card
function theSuit(card) {
var suit;
if(card>38) {
suit = "Diamonds";
}else if(card>25) {
suit = "Clubs";
}else if(card>12) {
suit = "Hearts";
}else {
suit = "Spades";
};
return suit;
};
// function toObject the first (numbered) card of of a hand
// and turns it into an Object with the desired properties
function toObject(hand) {
var card = hand.pop();
if (typeof(card) !== "number") {
hand.push(card);
} else {
var card = new Card (card);
hand.unshift(card);
};
return hand;
};
toObject(player);
toObject(player);
toObject(dealer);
toObject(dealer);
// function scoreHandArray scores your hand
function scoreHandArray(hand) {
var score = 0;
for (i=0,i<hand.length,i++) {
score = score + hand[i].value;
};
return score;
};
console.log("You have the " + player[0].face + " of " + player[0].suit " and the " + player[1].face " of " + player[1].suit " for a score of " scoreHandArray(player));
奇怪,現在在for
循環與;
小號更換,
年代後,現在響應ReferenceError: expected ')'
。 )
想要什麼? (出現錯誤是在最後console.log
線,作爲註釋掉它使誤差dissapear)。我數了數,在該行我有2 (
和2 )
!
噢,來吧!我以爲我查過了!謝謝! – CAD97 2012-02-10 16:51:27
不客氣。查看JSLint(由Mike_K發佈),這非常有幫助。 – davethegr8 2012-02-10 16:54:55