Я пробую простую игру в блэкджек с JS. Вот некоторые из моих кодов:
function card(suit, face) {
this.suit = suit;
this.face = face;
switch (face) {
case "A":
this.faceValue = 11;
break;
case "J":
case "Q":
case "K":
this.faceValue = 10;
break;
default:
this.faceValue = parseInt(face);
break;
}
};
const player = {
cards: [],
handValue: 0
}
const dealOneCardToPlayer = () => {
tempCard = deck.cards.splice(0, 1);
player.cards.push(tempCard);
player.handValue = countHandValue(player.cards);
}
Я застрял с методом countHandValue, который мне не удалось получить faceValue Cards для объекта игрока. Я пробую несколько типов для цикла, но безуспешно. Как только я смогу получить faceValue, я могу суммировать его и присвоить свойству handValue.
const countHandValue = (cardsOnHand) => {
for (const key of cardsOnHand) {
console.log(key.faceValue);
}
for (const key in cardsOnHand) {
console.log(key.faceValue);
}
}
[Код отредактирован] Я искал и нашел этот код, который я могу извлечь из своего свойства faceValue, но я считаю, что есть много дополнительного кода:
const countHandValue = (cardsOnHand) => {
let sum = 0;
for (var key in cardsOnHand) {
var arr = cardsOnHand[key];
for (var i = 0; i < arr.length; i++) {
var obj = arr[i];
for (var prop in obj) {
if (prop === "faceValue") {
console.log(prop + " = " + obj[prop]);
sum = sum + obj[prop];
}
}
}
}
return sum;
}