<body>
<div class="score-display"><span id="score1">0</span> - <span id="score2">0</span></div>
<p>Playing to: <span id="maxScoreDisplay">5</span></p>
<label for="max-score-input">Choose Final Score (1-10):</label>
<input type="number" id="maxScoreInput" name="max-score-input" value="5" min="1" max="10">
<button id="player1button">Player 1</button>
<button id="player2button">Player 2</button>
<button id="reset">Reset</button>
</body>
body {
font: 1rem 'Fira Sans', sans-serif;
}
label {
display: block;
}
#score1, #score2 {
}
.score-display {
font-size: 6em;
}
#maxScoreDisplay {
font-size: 2em;
}
.turnGreen {
color: green;
}
// PLAYER VARIABLES
// Assigning variables to each player button
var p1Button = document.querySelector("#player1button");
var p2Button = document.querySelector("#player2button");
// Assigning variables to Score display <span>s
var p1Display = document.querySelector("#score1");
var p2Display = document.querySelector("#score2");
// Creating variables to track current score
var p1Score = Number(document.querySelector("#score1").textContent);
var p2Score = Number(document.querySelector("#score2").textContent);
// MAX SCORE VARIABLES
var maxScoreInput = document.querySelector("#maxScoreInput");
var maxScoreDisplay = document.querySelector("#maxScoreDisplay");
var maxScore = Number(maxScoreInput.value);
// RESET VARIABLES
var resetButton = document.querySelector("#reset");
// EVENT LISTENERS
// Simply for debugging in the console
p1Button.addEventListener("click", logClick);
p2Button.addEventListener("click", logClick);
// clicking player buttons adds 1 to their score
p1Button.addEventListener("click", p1PlusOne);
p2Button.addEventListener("click", p2PlusOne);
// set max score display = to max score input
maxScoreInput.addEventListener("change", changeMaxScore);
// reset button sets scores back to zero and removes green class
resetButton.addEventListener("click", resetScore);
// FUNCTIONS
// console.log function for click event listeners
function logClick() {
console.log("Button has been clicked");
}
// **The following two functions could be refactored together**
// if neither player is at max score, gives 1 point to player 1, if max score is reached, turns score display green
function p1PlusOne() {
if (p1Score < maxScore && p2Score < maxScore) {
p1Score++;
console.log("player 1 score is " + p1Score);
p1Display.textContent = p1Score;
}
if (p1Score === maxScore) {
p1Display.classList.add("turnGreen");
}
}
// if neither player is at max score, gives 1 point to player 2, if max score is reached, turns score display green
function p2PlusOne() {
if (p1Score < maxScore && p2Score < maxScore) {
p2Score++;
console.log("player 2 score is " + p2Score);
p2Display.textContent = p2Score;
}
if (p2Score === maxScore) {
p2Display.classList.add("turnGreen");
}
}
// updates the max score display with the current max score value
function changeMaxScore() {
maxScore = Number(maxScoreInput.value);
maxScoreDisplay.textContent = maxScore;
}
// resets the player scores to zero, sets player score displays to new score which is zero, removes .turnGreen CSS class
function resetScore() {
p1Score = 0;
p2Score = 0;
p1Display.textContent = p1Score;
p2Display.textContent = p2Score;
p1Display.classList.remove("turnGreen");
p2Display.classList.remove("turnGreen");
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.