- classList.toggle: toggle('~~'): '~~'가 있으면 classList에서 없애고, 없으면 만들어준다.
-> 상황을 가정할 필요 없이 toggle달면 편한 이유
// =========== Selecting elements ===========
const player0El = document.querySelector('.player--0');
const player1El = document.querySelector('.player--1');
// <p class="score" id="score--0">43</p>
const score0El = document.querySelector('#score--0');
const score1El = document.getElementById('score--1');
// const score1 = document.querySelector('#score--1');
const current0El = document.getElementById('current--0');
const current1El = document.getElementById('current--1');
// querySelector, getElementById 후자가 조금 더 빠르나, 큰 차이는 없음 (기능 동일)
const diceEl = document.querySelector('.dice');
const btnNew = document.querySelector('.btn--new');
const btnRoll = document.querySelector('.btn--roll');
const btnHold = document.querySelector('.btn--hold');
// ============= Starting conditions ================
// 숫자로 써도 js가 자동으로 문자열로 변환해줌
score0El.textContent = 0;
score1El.textContent = 0;
// 이미지 숨기기 -> CSS .hidden 추가 <img src="dice-5.png" alt="Playing dice" class="dice" />
diceEl.classList.add('hidden');
const scores = [0, 0];
let currentScore = 0;
let activePlayer = 0;
// ============= Rolling dice functionality ==============
btnRoll.addEventListener('click', function () {
// 1. Generating a random dice roll
const dice = Math.trunc(Math.random() * 6) + 1;
// 2. Display dice
diceEl.classList.remove('hidden');
diceEl.src = `dice-${dice}.png`;
console.log(dice);
// 3. Check for rolled 1: if true, sitch to next player
if (dice !== 1) {
// Add dice to current score
currentScore += dice;
document.getElementById(
`current--${activePlayer}`
).textContent = currentScore;
} else {
// Switch to next player
// activePlayer가 0이면 1, 1이면 0 (삼항연산자)
document.getElementById(`current--${activePlayer}`).textContent = 0;
activePlayer = activePlayer === 0 ? 1 : 0;
currentScore = 0;
// *** toggle: 없으면 만들어주고, 있으면 제거해줌
player0El.classList.toggle('player--active');
player1El.classList.toggle('player--active');
}
});
'자바스크립트' 카테고리의 다른 글
[JavaScript] 81. keyup keypress keydown 차이 (0) | 2020.12.04 |
---|---|
[JavaScript] HTML structure 자동 설정 (vs code) (0) | 2020.12.04 |
[JavaScript] function, function() 차이 (0) | 2020.12.04 |
[JavaScript] value VS. textContent (0) | 2020.12.04 |
[JavaScript] 55. Setting up prettier and VS code (console.log 단축키) (0) | 2020.12.04 |