[javascript] 탁구 점수 관리 프로그램
카테고리: javascript
태그: javascript
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.winner {
color: green;
}
.loser {
color: red;
}
</style>
</head>
<body>
<h1><span id="p1Display">0</span> to <span id="p2Display">0</span></h1>
<select name="" id="playto">
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
</select>
<button id="p1Button">+1 Player One</button>
<button id="p2Button">+1 Player Two</button>
<button id="reset">Reset</button>
<script src="app.js"></script>
</body>
</html>
app.js
const p1 = {
score: 0,
button: document.querySelector("#p1Button"),
display: document.querySelector("#p1Display"),
};
const p2 = {
score: 0,
button: document.querySelector("#p2Button"),
display: document.querySelector("#p2Display"),
};
const resetButton = document.querySelector("#reset");
const winningScoreSelect = document.querySelector("#playto");
let winningScore = 3;
let isGameOver = false;
function updateScores(player, opponent) {
if (!isGameOver) {
player.score += 1;
if (player.score === winningScore) {
if (player.score - opponent.score >= 2) {
isGameOver = true;
player.display.classList.add("winner");
opponent.display.classList.add("loser");
player.button.disabled = true;
opponent.button.disabled = true;
} else {
winningScore += 1;
}
}
player.display.textContent = player.score;
}
}
p1.button.addEventListener("click", () => {
updateScores(p1, p2);
});
p2.button.addEventListener("click", () => {
updateScores(p2, p1);
});
winningScoreSelect.addEventListener("change", (event) => {
winningScore = parseInt(event.target.value);
reset();
});
resetButton.addEventListener("click", reset);
function reset() {
isGameOver = false;
for (let p of [p1, p2]) {
p.score = 0;
p.display.textContent = 0;
p.display.classList.remove("winner", "loser");
p.button.disabled = false;
}
}
📌출처
유데미 The Web Developer 부트캠프 2023
👍 개인 공부 기록용 블로그입니다. 오류나 조언이 있으시면 언제든지 댓글 혹은 메일로 남겨주시면 감사하겠습니다! 😄
댓글남기기