blackjack logic written in vue https://luna-development.net/blackjack/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
913 B

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