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());
       ...