Coderslang_Master
Все, что пришло в голову - перенес
shuffled = shuffle([...cards])
for(let i = 0; i < shuffled.length; i++){
field.append(shuffled[i])
внутрь ивент лисенера, addMove() внутрь цикла, убрал массив opened.
Но теперь при нажатии на любую карточку подобная картина:
Весь код:
const modal = document.querySelector('.congratulation-message span')
const tryAgainButton = document.querySelector('#try-again');
var matched = 0
var moves = 0
function shuffle (_arr) {
const arr = [..._arr];
for (let i = arr.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr;
}
function init() {
const cards = document.querySelectorAll('.card');
const field = document.querySelector('.field');
var shuffled = []
matched = 0
moves = 0
cards.forEach((card) => {
card.addEventListener('click', (e) => {
card.classList.add('opened')
shuffled = shuffle([...cards])
for(let i = 0; i < shuffled.length; i++){
field.append(shuffled[i])
addMove()
}
})
})
document.querySelector('.modal').style.display = 'none'
}
function addMove() {
moves++;
document.querySelector('.moves-counter span').innerHTML = moves;
}
function showModal() {
modal.innerHTML = `${moves}`;
document.querySelector('.modal').style.display = "block"
}
tryAgainButton.addEventListener('click', (e) => {
init()
})
init()