Untitled
unknown
javascript
3 years ago
3.2 kB
11
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;
}
}
Editor is loading...