JSFiddle - React, Tailwind, and code Playground
by egorbatik
JavaScript
function Card(s, n) {
var suit = s;
var number = n;
this.getSuit = function() {
return suit;
};
this.getNumber = function() {
return number;
};
this.getValue = function() {
if ((number >= 10) || (number === 0)) {
return 10;
} else if (number === 1) {
return 11;
} else {
return number;
}
};
}
function deal() {
var randSuit = Math.floor(Math.random() * 4) + 1;
var randNum = Math.floor(Math.random() * 13) + 1;
return new Card(randSuit, randNum);
}
function Hand() {
var cards = [];
cards[0] = deal();
cards[1] = deal();
this.getHand = function() {
return cards;
};
this.hitMe = function() {
var newCard = new Card(Math.floor(Math.random() * 4) + 1, Math.floor(Math.random() * 13) + 1);
cards[cards.length] = newCard;
};
this.score = function() {
var total = 0;
var numAces = 0;
for (var i = 0; i < cards.length; i++) {
if (cards[i].getValue() === 11) {
numAces++;
total += cards[i].getValue();
} else {
total += cards[i].getValue();
}
}
while ((numAces > 0) && (total > 21)) {
total -= 10;
numAces--;
}
return total;
};
this.findSuit = function(suitNum) {
switch (suitNum) {
case 1:
return "Hearts";
case 2:
return "Diamonds";
case 3:
return "Clubs";
case 4:
return "Spades";
default:
return "Invalid Suit";
}
};
this.printHand = function() {
var currentHand = "";
for (var i = 0; i < cards.length; i++) {
if (i !== 0) {
currentHand += " - ";
}
if (cards[i].getNumber() === 11) {
currentHand += "Jack of ";
currentHand += this.findSuit(cards[i].getSuit());
...