Untitled
unknown
javascript
2 years ago
3.2 kB
3
Indexable
let myCards = document.getElementById("container"); let resultsArray = [];// آرایه برای نگهداری نتایج کلیک کاربر let counter = 0;// شمارنده برای تعداد جفت کارتهای مطابقت داده شده let text = document.getElementById("text");// المان متن برای نمایش نتیجه let seconds = 00;// شمارنده ثانیه let tens = 00;// شمارنده دهم ثانیه let appendTens = document.getElementById("tens");// المان مربوط به دهم ثانیه let appendSeconds = document.getElementById("seconds");// المان مربوط به ثانیه let Interval;// شمارنده برای شروع شدن زمانسنج let images = ["sass", "git", "gulp", "css", "grunt"];// تصاویر مربوط به کارتها let clone = images.slice(0); // duplicate array // تکثیر آرایه images let cards = images.concat(clone); // merge to arrays // ترکیب دو آرایه // Shufffel function// تابع shuffle برای تصادفی کردن ترتیب کارتها function shuffle(o) { for ( let j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x ); return o; } shuffle(cards);// تصادفی کردن ترتیب کارتها با استفاده از تابع shuffle // ایجاد کارتها و اضافه کردن آنها به المان کانتینر for (let i = 0; i < cards.length; i++) { card = document.createElement("div"); card.dataset.item = cards[i]; card.dataset.view = "card"; myCards.appendChild(card); // تابع onclick برای کلیک بر روی هر کارت card.onclick = function () { if (this.className != "flipped" && this.className != "correct") { this.className = "flipped"; let result = this.dataset.item; resultsArray.push(result); clearInterval(Interval); Interval = setInterval(startTimer, 10); } if (resultsArray.length > 1) { if (resultsArray[0] === resultsArray[1]) { check("correct"); counter++; win(); resultsArray = []; } else { check("reverse"); resultsArray = []; } } }; } // تابع check برای چک کردن اصلاح کلاس المانهای flipped let check = function (className) { let x = document.getElementsByClassName("flipped"); setTimeout(function () { for (let i = x.length - 1; i >= 0; i--) { x[i].className = className; } }, 500); }; // تابع win برای بررسی پایان بازی let win = function () { if (counter === 5) { clearInterval(Interval); text.innerHTML = "Your time was " + seconds + ":" + tens; } }; // تابع شمارش زمان function startTimer() { tens++; if (tens < 9) { appendTens.innerHTML = "0" + tens; } if (tens > 9) { appendTens.innerHTML = tens; } if (tens > 99) { seconds++; appendSeconds.innerHTML = "0" + seconds; tens = 0; appendTens.innerHTML = "0" + 0; } if (seconds > 9) { appendSeconds.innerHTML = seconds; } }