JSFiddle - React, Tailwind, and code Playground

by Copopops

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="stylesheet" href="style.css" />
    <title>Pig Game</title>
  </head>
  <body>
    <main>
      <section class="player player--0 player--active">
        <h2 class="name" id="name--0">Player 1</h2>
        <p class="score" id="score--0">0</p>
        <div class="current">
          <p class="current-label">Current</p>
          <p class="current-score" id="current--0">0</p>
        </div>
      </section>
      <section class="player player--1">
        <h2 class="name" id="name--1">Player 2</h2>
        <p class="score" id="score--1">0</p>
        <div class="current">
          <p class="current-label">Current</p>
          <p class="current-score" id="current--1">0</p>
        </div>
      </section>

      <img src="dice-5.png" alt="Playing dice" class="dice hidden" />
      <button class="btn btn--new">🔄 New game</button>
      <button class="btn btn--roll">🎲 Roll dice</button>
      <button class="btn btn--hold">📥 Hold</button>
    </main>
    <script src="script.js"></script>
  </body>
</html>

JavaScript

'use strict';

const btnRoll = document.querySelector('.btn--roll');
const btnNew = document.querySelector('.btn--new');
const btnHold = document.querySelector('.btn--hold');
const dice = document.querySelector('.dice');

let player1 = {
    totalScore: 0,
    currentScore: 0,
    totalScoreBox: document.querySelector('#score--0').textContent,
    currentScoreBox: document.querySelector('#current--0').textContent
}

let player2 = {
    totalScore: 0,
    currentScore: 0,
    totalScoreBox: document.querySelector('#score--1').textContent,
    currentScoreBox: document.querySelector('#current--1').textContent
}

let currentPlayer = player1;

btnRoll.addEventListener('click', () => {
    dice.classList.remove('hidden');
    rollDice();
})

const rollDice = () => { 
    let diceNum = Math.trunc(Math.random() * 6) + 1;
    switch (diceNum) {
        case 1:
            dice.src = 'dice-1.png';
            resetPlayerScore(currentPlayer);
            break;
        case 2:
            dice.src = 'dice-2.png';
            updatePlayerScore(currentPlayer, 2)
            break;
        case 3:
            dice.src = 'dice-3.png';
            updatePlayerScore(currentPlayer, 3)
            break;
        case 4:
            dice.src = 'dice-4.png';
            updatePlayerScore(currentPlayer, 4)
            break;
        case 5:
            dice.src = 'dice-5.png';
            updatePlayerScore(currentPlayer, 5)
            break;
        case 6:
            dice.src = 'dice-6.png';
            updatePlayerScore(currentPlayer, 6)
            break;
    }
}

const updatePlayerScore = (player, value) => {
    player.totalScore += value;
    player.currentScore += value;
    player.currentScoreBox = parseFloat(player.currentScore);
}

const resetPlayerScore = player =>  {
    player.totalScore = 0;
    player.currentScore = 0;
}