class Hand { cards; points; constructor() { this.cards = []; } static create() { return new Hand(); } static createDealerHand() { let dealerHand = new Hand(); dealerHand.isDealer = true; return dealerHand; } /** * Adds given Card to the hand * @param {Card} drawnCard */ pickCard(drawnCard) { if (drawnCard.ace && this.points > 10) { drawnCard.points = 1; } this.cards.push(drawnCard); this.points = (this.points + drawnCard.points); } includesAces(hand) { let aceCount = 0; hand.forEach((card) => { if (card.ace === true) { aceCount++; } }); return aceCount; } hasBlackjack() { return this.points === 21; } isPlus() { return this.points > 21; } }